C#向数据库中插入空行,而后给主键一个内容,最后更新dataset,但为何总是报我插入了null错误?
我的代码如下:
string coon = "server=.;uid=sa;pwd=123456;Database=" + myglobaldate.DBname;
SqlConnection CN = new SqlConnection(coon);
CN.Open();
string weekdaystr = "select * from " + strMtablename;
SqlDataAdapter adp = new SqlDataAdapter(weekdaystr, CN);
DataSet ds = new DataSet();
adp.Fill(ds);
DataTable dstable = ds.Tables[0];
DataRow drw = dstable.NewRow();
dstable.Rows.Add(drw); // 插入空行
ds.Tables[0].Rows[0][0] = "星期"; //主键姓名列给一个值
for (i5=1; i5<= monthday;i5++)
{
DateTime myusedate = Convert.ToDateTime(DateTime.Now.Month.ToString() + "-" + i5.ToString());
Program.MyWeekcheck1(myusedate, out signday);
ds.Tables[0].Rows[0][i5] = signday.ToString();
}
SqlCommandBuilder buld = new SqlCommandBuilder(adp);
adp.Update(ds); //我认为我已经给主键一个值,就不为空了,但是程序执行到这里总是报错
报错如下:
且我查看数据库中,有时候即使这里报错了,但是数据其实还是写入了数据库中的,请问这个问题出现的原因在哪里?
看下表定义,所有的非空字段,插入的时候都必须给值
另外就是表的主键id,是否设置为自增列了,如果没有设置,也会出这个错误。
报错是否由其它SQL造成?姓名 列给值了吗? baseDB.dbo.Y_2023_5月 这个表数据在哪插入的?
看你的表结构,可能不只是主键不允许空。