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数据库





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


...全文
237 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
  • 打赏
  • 举报
回复
具体怎么操作呢
内容概要:本文档是2025年全国广播电视技术能手竞赛IPTV专业的竞赛内容大纲,旨在指导参赛选手准备比赛。竞赛分为理论和实操两大部分。理论部分涵盖基本知识、基础理论和专业知识,包括法律法规、技术标准、IPTV技术基础、信号传输与分发、网络和数据安全等。实操部分则涉及IPTV系统设备、仪器设备的操作使用和指标测量。具体内容包括IPTV系统架构、传输技术与指标、设备配置及维护、专业技能如测量工具使用、视音频指标测量、直播点播协议分析、播出网络性能测量、网络安全数据分析以及系统故障排查等。 适合人群:从事或有意从事IPTV相关工作的技术人员,尤其是有志于参加全国广播电视技术能手竞赛的专业人士。 使用场景及目标:①帮助参赛选手全面了解并掌握IPTV相关的法规文件和技术标准;②提升选手对IPTV系统架构、传输技术和设备配置的理解;③增强选手在实际操作中的测量、分析和故障排查能力;④确保选手能够熟练运用各种测量工具和分析软件进行视音频指标测量和网络安全数据分析。 阅读建议:由于文档内容详尽且专业性强,建议读者在学习过程中结合实际案例和操作练习,同时参考相关技术文献,以便更好地理解和掌握竞赛所需的知识和技能。

62,244

社区成员

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

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

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

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