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表产生关系呢? --------------------编程问答--------------------
应该怎么加啊? --------------------编程问答--------------------
select b.姓名,a.课程编号,c.事件,c.扣分
from sc a,students b,case c where a.id=b.id and a.事件编号=c.事件编号
表间关系不明确 只能猜你的意思 --------------------编程问答--------------------
的确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.事件编号
跟里面的不一样 --------------------编程问答-------------------- 表貌似不符合三大范式 耶 呵呵 --------------------编程问答--------------------
其实很多时候遵循三大范式实现不了自己需要的效果 所以三大范式只是一个理想的标准而已 没必要完全遵循 --------------------编程问答-------------------- 外键都木有,搞毛哦 --------------------编程问答--------------------
的确 这几个表建的也太水了 --------------------编程问答--------------------
mmm
补充:.NET技术 , C#