关于Datalist未将对象引用设置到对象的实例

我datalist中的datakeyfield已经设置好啦结果运行出现了一下问题:未将对象引用设置到对象的实例。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈... 我datalist中的datakeyfield已经设置好啦结果运行出现了一下问题:
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

行 96: string book_id = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
行 97: TextBox count = (TextBox)this.DataList1.Items[e.Item.ItemIndex].FindControl("TextBox2");
行 98: 行 99: Boolean update_result;
行 100: update_result=db.UpdateDataBySql(SqlStr);
在这一大段代码中:系统说我的:SqlStr = "update 购物车表 set 数量='" + count.Text + "' where 图书编号='" +book_id + "' and 会员名='" + Session["UserName"] + "'";
有错!!求高手解决!
展开
 我来答
红客起飞
2011-05-25
知道答主
回答量:34
采纳率:0%
帮助的人:37.2万
展开全部
1、检查Session["UserName"] 是不是null,如果不为null,在后面加上toString()函数
2、如果还有错,你在SqlStr 处设个断点,看看SqlStr 的值是多少,肯定能看出错哪了
以下是我的建议:
1、数据库对象不要用中文
2、sql语句的参数最好用Parameter的形式传进去,防止注入攻击
3、调用FindControl方法后做强制类型转换时,最好用as关键字,提高运行效率
4、极力避免DataList1、TextBox2的命名方式,养成好习惯!
追问
调用FindControl方法后做强制类型转换时,最好用as关键字,提高运行效率
具体怎样用AS,你写一下代码
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式