当前位置:编程学习 > C#/ASP.NET >>

DataGridView中插数据做不下去了,坐等!

[img=http://b80.photo.store.qq.com/psu?/e6b9cfa9-6c16-4891-ac3b-e0edf0efa8f5/y8vTJjLdPhNMv.RgOTSistBfqABhefLSyRAvzX5TOr8!/b/YcQutS*RTAAAYsyrti9uTAAA][/img]
我想建这样的一个表,现在有3个表:
sc表:id,课程编号,事件编号,添加时间,老师编号;
students表:id,姓名,班级编号
case表:事件,事件编号,扣分

现在通过一条查询Table得到一个学生扣分情况表
sc表中没有的数据不用添加
百思不得其解啊!有什么方法能在姓名后面分开算分啊,例外合并也不会。
哪位给我看看哦~
才学习哦~ --------------------编程问答-------------------- 把图上传到你的空间里在发到论坛就可以看到图了。
--------------------编程问答-------------------- 想问,你那个sc表或者case表通过哪个和students表产生关系呢? --------------------编程问答--------------------
引用 2 楼 guhuojingling 的回复:
想问,你那个sc表或者case表通过哪个和students表产生关系呢?

应该怎么加啊? --------------------编程问答--------------------

select b.姓名,a.课程编号,c.事件,c.扣分
from sc a,students b,case c where a.id=b.id and a.事件编号=c.事件编号

表间关系不明确 只能猜你的意思 --------------------编程问答--------------------
引用 3 楼 k5177964 的回复:
引用 2 楼 guhuojingling 的回复:

想问,你那个sc表或者case表通过哪个和students表产生关系呢?

应该怎么加啊?

的确students 被独立了   你可以在case表里添加一个studentsID的字段 这样3张表就联系在一起了 --------------------编程问答--------------------
DataTable dts = ado.GetDataTable("select id 学号,name 姓名 from students");
            dts.Columns.Add(".NET");
            dts.Columns.Add(".NET1");
            dts.Columns.Add(".NET2");
            dts.Columns.Add(".NET3");
            dts.Columns.Add(".NET4");
            dts.Columns.Add(".NET5");

            dts.Columns.Add("日语");
            dts.Columns.Add("日语1");
            dts.Columns.Add("日语2");
            dts.Columns.Add("日语3");
            dts.Columns.Add("日语4");
            dts.Columns.Add("日语5");

            dts.Columns.Add("服务器");
            dts.Columns.Add("服务器1");
            dts.Columns.Add("服务器2");
            dts.Columns.Add("服务器3");
            dts.Columns.Add("服务器4");
            dts.Columns.Add("服务器5");

            dts.Columns.Add("网页");
            dts.Columns.Add("网页1");
            dts.Columns.Add("网页2");
            dts.Columns.Add("网页3");
            dts.Columns.Add("网页4");
            dts.Columns.Add("网页5");

            object ooo = ado.ExecuteScalar("select id from students");
            string stutemp = ooo.ToString();
            string stusemp2 =stutemp.Substring(0, 8);
            DataRow drow=new DataRow();
            for (int i = 1; i <= dts.Rows.Count; i++)
            {
                string ii = i.ToString();
                string stusum="";
                if (ii.Length < 2)
                { stusum = stusemp2 + "0" + ii; }
                else
                {stusum=stusemp2+ii;}
               object dttemp= ado.ExecuteScalar("select score.scorse from score inner join sc on score.scoreid=sc.scoreid where sc.stuid='"+stusum+"'");
               object dttemp4 = ado.ExecuteScalar("select count (*) from course");
                object dttemp5 = ado.ExecuteScalar("select count (*) from score");
                if (dttemp != null)
                {
                    for (int g = 0; g < int.Parse(dttemp4.ToString()); g++)
                    {
                        for (int h = 1; h <= int.Parse(dttemp5.ToString()); h++)
                        {
                            object Fa= ado.ExecuteScalar("select score from score inner join sc on score.scoreid=sc.scoreid where sc.stuid='"+stusum+"' and courseid='"+g+4+"' and sc.scoreid="+h+"");
                            if (Fa != null)
                            {
                                string ttt = Fa.ToString();
                                drow[g * 6 + h] = ttt;
                            }
                        }
                    }
                }
                if(drow!=null)
                dt.Rows.Add(drow);
                drow=dt.NewRow();
            }
            dataGridView1.DataSource = dts;
--------------------编程问答-------------------- 不知道怎么回事编辑不了自己说的话啊,图片在这:

DataRow drow=new DataRow();

这句换成
DataRow drow = null;

之后报错啊
drow[g *  + h] = ttt.ToString();[

NullRfenrenceException --------------------编程问答-------------------- sc表:id,课程编号,事件编号,添加时间,老师编号;
students表:id,姓名,班级编号
case表:事件,事件编号,扣分

select b.姓名,a.课程编号,c.事件,c.扣分 
inner join students b on a.id=b.id
from sc a where a.事件编号=case.事件编号
--------------------编程问答--------------------
引用 8 楼 zyloveyrf 的回复:
sc表:id,课程编号,事件编号,添加时间,老师编号;
students表:id,姓名,班级编号
case表:事件,事件编号,扣分
SQL code

select b.姓名,a.课程编号,c.事件,c.扣分 
inner join students b on a.id=b.id
from sc a where a.事件编号=case.事件编号



跟里面的不一样 --------------------编程问答-------------------- 表貌似不符合三大范式 耶   呵呵  --------------------编程问答--------------------
引用 10 楼 huzhenfeng1111 的回复:
表貌似不符合三大范式 耶 呵呵



其实很多时候遵循三大范式实现不了自己需要的效果 所以三大范式只是一个理想的标准而已 没必要完全遵循 --------------------编程问答-------------------- 外键都木有,搞毛哦 --------------------编程问答--------------------
引用 12 楼 hhqsy 的回复:
外键都木有,搞毛哦



的确  这几个表建的也太水了 --------------------编程问答--------------------
引用 6 楼 k5177964 的回复:
C# code

DataTable dts = ado.GetDataTable("select id 学号,name 姓名 from students");
            dts.Columns.Add(".NET");
            dts.Columns.Add(".NET1");
            dts.Columns.Add(".NET2");
……




mmm
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,