以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 求助!!!! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42834)
|
-- 作者:myzzip
-- 发布时间:2013/11/23 14:07:00
-- 求助!!!!
Dim dr As DataRow dr = DataTables("商品入库").Find("商品编号 = " & "\'" & e.Form.Controls("TextBox1").Value & "\'" ) If dr IsNot Nothing Then \'如果找到就把文本框5的值与表列中的值想加 dr("入库数量") = e.Form.Controls("TextBox5").Value + dr("入库数量") Else \'如果未找到 就新增数据写到表里面 但是在这一步报错??? dr("商品编号") = e.Form.Controls("TextBox1").Value dr("产品类别") = e.Form.Controls("TextBox2").Value dr("产品名称") = e.Form.Controls("TextBox3").Value dr("单位") = e.Form.Controls("TextBox4").Value dr("入库数量") = e.Form.Controls("TextBox5").Value dr("采购价") = e.Form.Controls("TextBox6").Value dr("销售单价") = e.Form.Controls("TextBox7").Value End If
此主题相关图片如下:q~4`drmbh~yvum78hvnnut.jpg
|
-- 作者:myzzip
-- 发布时间:2013/11/23 14:08:00
--
是曾加按钮Click事件
|
-- 作者:狐狸爸爸
-- 发布时间:2013/11/23 14:10:00
--
你多了个else,应该:
Dim dr As DataRow dr = DataTables("商品入库").Find("商品编号 = " & "\'" & e.Form.Controls("TextBox1").Value & "\'" ) If dr IsNot Nothing Then \'如果找到就把文本框5的值与表列中的值想加 dr("入库数量") = e.Form.Controls("TextBox5").Value + dr("入库数量") dr("商品编号") = e.Form.Controls("TextBox1").Value dr("产品类别") = e.Form.Controls("TextBox2").Value dr("产品名称") = e.Form.Controls("TextBox3").Value dr("单位") = e.Form.Controls("TextBox4").Value dr("入库数量") = e.Form.Controls("TextBox5").Value dr("采购价") = e.Form.Controls("TextBox6").Value dr("销售单价") = e.Form.Controls("TextBox7").Value End If
|
-- 作者:myzzip
-- 发布时间:2013/11/23 14:14:00
--
else 不多
|
-- 作者:狐狸爸爸
-- 发布时间:2013/11/23 14:17:00
--
当然多了,你原来的代码,else之后的部分,是没有找到符合条件的行才会执行的,既然没有符合条件的行,那么dr为nothing,运行这些代码肯定出错。
要理清楚自己的逻辑,再写代码。
[此贴子已经被作者于2013-11-23 14:21:01编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2013/11/23 14:24:00
--
这段代码的逻辑是否是这样的:如果找到,则数量累加,没有找到,则增加一行。
如果是的,代码为:
Dim dr As DataRow dr = DataTables("商品入库").Find("商品编号 = " & "\'" & e.Form.Controls("TextBox1").Value & "\'" ) If dr IsNot Nothing Then \'如果找到 dr("入库数量") = e.Form.Controls("TextBox5").Value + dr("入库数量") Else dr = DataTables("商品入库").AddNew() \'如果没有找到,则增加一行 dr("商品编号") = e.Form.Controls("TextBox1").Value dr("产品类别") = e.Form.Controls("TextBox2").Value dr("产品名称") = e.Form.Controls("TextBox3").Value dr("单位") = e.Form.Controls("TextBox4").Value dr("入库数量") = e.Form.Controls("TextBox5").Value dr("采购价") = e.Form.Controls("TextBox6").Value dr("销售单价") = e.Form.Controls("TextBox7").Value End If
[此贴子已经被作者于2013-11-23 14:26:40编辑过]
|
-- 作者:myzzip
-- 发布时间:2013/11/23 14:24:00
--
Dim dr As DataRow dr = DataTables("商品入库").Find("商品编号 = " & "\'" & e.Form.Controls("TextBox1").Value & "\'" ) If dr IsNot Nothing Then \'如果找到就把文本框的值与表列中的值想加 dr("入库数量") = e.Form.Controls("TextBox5").Value + dr("入库数量") Else If dr Is Nothing Then dr("商品编号") = e.Form.Controls("TextBox1").Value dr("产品类别") = e.Form.Controls("TextBox2").Value dr("产品名称") = e.Form.Controls("TextBox3").Value dr("单位") = e.Form.Controls("TextBox4").Value dr("入库数量") = e.Form.Controls("TextBox5").Value dr("采购价") = e.Form.Controls("TextBox6").Value dr("销售单价") = e.Form.Controls("TextBox7").Value End If
|
-- 作者:狐狸爸爸
-- 发布时间:2013/11/23 14:27:00
--
看六楼。
另建议:提问,除了贴出代码,最好也介绍下这段代码的目的,以及说明什么时候会出错。
[此贴子已经被作者于2013-11-23 14:27:26编辑过]
|
-- 作者:myzzip
-- 发布时间:2013/11/23 14:27:00
--
我的意思是如果没有找到符合条件的就新增一行把当前文本框里的值写到表里面去 代码怎么实现?谢谢啦!!!
|
-- 作者:狐狸爸爸
-- 发布时间:2013/11/23 14:28:00
--
看六楼,我已经猜出你的意思了,你漏掉了增加行的代码。
[此贴子已经被作者于2013-11-23 14:28:12编辑过]
|