ASP。net操作数据库问题 急求大佬解答一下

佯佯佯 2019-05-09 09:42:05
在用ASP编辑Mysql的数据库增删改查功能 本人刚接触asp.net,大神勿喷
有以下问题请教:
1、点击编辑 编辑数据后

如图 点击更新 错误是未实例化 System.NullReferenceException:“未将对象引用设置到对象的实例。”
更新代码如下:
protected void GridView2_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
con = new MySqlConnection(strCon);
string sqlstr1 = "update pricr set pricr_id='"
+ ((TextBox)(GridView2.Rows[e.RowIndex].Cells[0].FindControl("TextBox"))).Text.ToString().Trim() + "',price_max='"
+ ((TextBox)(GridView2.Rows[e.RowIndex].Cells[1].FindControl("TextBox"))).Text.ToString().Trim() + "',price_min='"
+ ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].FindControl("TextBox"))).Text.ToString().Trim() + "',price_time='"
+ ((TextBox)(GridView2.Rows[e.RowIndex].Cells[3].FindControl("TextBox"))).Text.ToString().Trim() + "', price_goodid='"
+ ((TextBox)(GridView2.Rows[e.RowIndex].Cells[4].FindControl("TextBox"))).Text.ToString().Trim() + "' where price_id='"
+ GridView2.DataKeys[e.RowIndex].Value.ToString() + "'";

com = new MySqlCommand(sqlstr1, con);
con.Open();
com.ExecuteNonQuery();
con.Close();
GridView2.EditIndex = -1;
bind();

}
是哪里有问题那 报错的位置是红色部分 更新代码有问题吗?
2、怎么在网页中点击添加按钮 会弹出输入框 然后赋值给GridView的每一列中 并保存到Mysql数据库





希望有大佬能解答一下疑惑
成长的道路漫长,学无止境。


...全文
236 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2019-05-09
  • 打赏
  • 举报
回复
下断点调试下 sqlstr1 是多少,sql拼接对不对。建议你用string.Format,而不是那么多加号,看着都眼晕
爱生活爱敏敏 2019-05-09
  • 打赏
  • 举报
回复
你看下数据库有些值是不是为空的,如果为空在程序里面最后处理一下为空返回默认值,要不让会未将对象引用设置
秋的红果实 2019-05-09
  • 打赏
  • 举报
回复
为了保证点击的不是head行,需要 if (e.Row.RowType== DataControlRowType.DataRow) { con = new MySqlConnection(strCon); string sqlstr1 = "update pricr set pricr_id='" + ((TextBox)(GridView2.Rows[e.RowIndex].Cells[0].FindControl("TextBox"))).Text.ToString().Trim() + "',price_max='" + ((TextBox)(GridView2.Rows[e.RowIndex].Cells[1].FindControl("TextBox"))).Text.ToString().Trim() + "',price_min='" + ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].FindControl("TextBox"))).Text.ToString().Trim() + "',price_time='" + ((TextBox)(GridView2.Rows[e.RowIndex].Cells[3].FindControl("TextBox"))).Text.ToString().Trim() + "', price_goodid='" + ((TextBox)(GridView2.Rows[e.RowIndex].Cells[4].FindControl("TextBox"))).Text.ToString().Trim() + "' where price_id='" + GridView2.DataKeys[e.RowIndex].Value.ToString() + "'"; com = new MySqlCommand(sqlstr1, con); con.Open(); com.ExecuteNonQuery(); con.Close(); GridView2.EditIndex = -1; bind(); }
秋的红果实 2019-05-09
  • 打赏
  • 举报
回复
列都转成templateField了吗? 五个cell里textbox的id都是“TextBox”? 这样做吧 ((TextBox)(GridView2.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim() ((TextBox)(GridView2.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() .............. 另外,每个cell不一定有textbox,最好判断下

TextBox tb=(TextBox)(GridView2.Rows[e.RowIndex].Cells[0].Controls[0]);
if(tb!=null)
{
    cellText=tb.Text.ToString().Trim();

}

佯佯佯 2019-05-09
  • 打赏
  • 举报
回复
该怎么去获取值呢 有具体的代码嘛 就是原问题截图中输入进去的值
大鱼> 2019-05-09
  • 打赏
  • 举报
回复
写法有点奇怪 (GridView2.Rows[e.RowIndex].Cells[0].FindControl("TextBox"))).Text.ToString().Trim()你这个是不是为空?
  • 打赏
  • 举报
回复
debug,看是哪行报错,然后再看是哪个值为null引起的报错
正怒月神 版主 2019-05-09
  • 打赏
  • 举报
回复
调试,然后就会跑到出错的行了。 然后你看是哪个值空引用了。
佯佯佯 2019-05-09
  • 打赏
  • 举报
回复
具体怎么操作呢

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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