c#把datagridview中的数据添加到数据库

caohui_007 2009-08-12 07:35:07
写了一个吧datagirdview中的数据加入数据中的程序,写入数据库中的程序如下:
sqlconn.Open();

string strid = dataGridView1.Rows[i].Cells["USERID"].Value.ToString();
string strname = dataGridView1.Rows[i].Cells["USERNAME"].Value.ToString();
string strsex = dataGridView1.Rows[i].Cells["SEX"].Value.ToString();
string strdate = dataGridView1.Rows[i].Cells["DATE"].Value.ToString();
string strspe = dataGridView1.Rows[i].Cells["SPE"].Value.ToString();
string sqlinsert = "insert into STUDENT(USERID,USERNAME,SEX,BIRTHDAY,SPECIALTY) values ('" + strid + "','" + strname + "','" + strsex + "','" + strdate + "','" + strspe + "')";

//MessageBox.Show(sqlinsert);
SqlCommand sqlcmd = new SqlCommand(sqlinsert, sqlconn);
sqlcmd.ExecuteNonQuery();

sqlconn.close();
出现这个错误“未处理 NullReferenceException ,未将对象引用设置到对象的实例”的错误,但数据添加成功,错误位于

string strid = dataGridView1.Rows[i].Cells["USERID"].Value.ToString();这里。请各位帮忙解决一下
...全文
471 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyfedere 2009-08-13
  • 打赏
  • 举报
回复
我也觉得是循环时,第i个时,那个为空的值,所以就出了个典型的“未将对象引用带实例”
chunwudu 2009-08-13
  • 打赏
  • 举报
回复
更新dataset就可以了。
caohui_007 2009-08-13
  • 打赏
  • 举报
回复
多谢啦!
dancingbit 2009-08-13
  • 打赏
  • 举报
回复
空白行本来是没有数据的,这个你操作的时候就要小心了。
要不把DataGridView的AllowUserToAddRows属性设为false,不允许用户添加空行,只能通过程序的添加。
caohui_007 2009-08-13
  • 打赏
  • 举报
回复
找到原因了,原来datagridview中的数据是10行,但datagridview总是显示11行,最后一行空白。怎样把空白行去掉呢?谢谢!
xiaomh2008 2009-08-12
  • 打赏
  • 举报
回复
string sqlinsert = "insert into STUDENT(USERID,USERNAME,SEX,BIRTHDAY,SPECIALTY) values ('" + strid + "','" + strname + "','" + strsex + "','" + strdate + "','" + strspe + "')";

这段代码不要写这么复杂,下面这样就好了,
string sqlinsert = "insert into STUDENT values ('" + strid + "','" + strname + "','" + strsex + "','" + strdate + "','" + strspe + "')";

你在这句上设个断点,然后看下sqllinsert语句里每个字段是不是有值,这样问题就很好找了SqlCommand sqlcmd = new SqlCommand(sqlinsert, sqlconn);
Teemo酱 2009-08-12
  • 打赏
  • 举报
回复
噢噢····
百事洞明 2009-08-12
  • 打赏
  • 举报
回复
注意表中数据与数据库字段属性
caohui_007 2009-08-12
  • 打赏
  • 举报
回复
对,这段代码是在循环里写的。循环次数是datagridview的rows.count。
wukehao_2008 2009-08-12
  • 打赏
  • 举报
回复
string strid = dataGridView1.Rows[i].Cells["USERID"].Value.ToString();
你看看出错的时候i的值是多少```然后打到那一行看看你的Value值是否是空值```我猜想你添加成功的数据不是全部数据都写进了数据库,而是第i行之前的写进去了,后面的那些都没添加````
dancingbit 2009-08-12
  • 打赏
  • 举报
回复
这段代码是在循环中?循环是怎么写的?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧