我从数据库中得到一个dataset[“contractor“],我想创建一个新的行,添加数据,然后update(ds[contractor])。这个表中已经定义了主键。我的代码如下:
DataRow r=ds.Tables["contractor"].NewRow();
//ds.Tables["contractor"].Columns[0].AutoIncrement=true; r[1]=contractor_id ;
r[2]=custom_id ;
r[3]=contractor_name ;
r[4]=department ;
r[5]=phone ;
r[6]=mobil ;
r[7]=qq ;
r[8]=msn ;
r[9]=sex ;
r[10]=duties ;
r[11]=fax ;
r[12]=address ;
r[13]=email ;
r[14]=webpage ;
r[15]=interesting ;
r[16]=commemorationday ;
r[17]=res ;
if(photo!=null)
r[18]=photo;
else
r[18]=DBNull.Value ;
ds.Tables["contractor"].Rows.Add(r);
ada3=new SqlDataAdapter("select * from contractor",conn);
cb3=new SqlCommandBuilder(ada3);
ada3.Update(ds.Tables["contractor"]);
结果是:id裂不能为空值。即使去掉注释的那一行也不行。
请问我应该怎么改?
谢谢
DataRow r=ds.Tables["contractor"].NewRow();
//ds.Tables["contractor"].Columns[0].AutoIncrement=true; r[1]=contractor_id ;
r[2]=custom_id ;
r[3]=contractor_name ;
r[4]=department ;
r[5]=phone ;
r[6]=mobil ;
r[7]=qq ;
r[8]=msn ;
r[9]=sex ;
r[10]=duties ;
r[11]=fax ;
r[12]=address ;
r[13]=email ;
r[14]=webpage ;
r[15]=interesting ;
r[16]=commemorationday ;
r[17]=res ;
if(photo!=null)
r[18]=photo;
else
r[18]=DBNull.Value ;
ds.Tables["contractor"].Rows.Add(r);
ada3=new SqlDataAdapter("select * from contractor",conn);
cb3=new SqlCommandBuilder(ada3);
ada3.Update(ds.Tables["contractor"]);
结果是:id裂不能为空值。即使去掉注释的那一行也不行。
请问我应该怎么改?
谢谢
DataAdapter.FillSchema 方法
可免除后面很多问题