我有一个数据表但是当我使用下面的命令时我无法修改行值。
Int64 quantity = Convert.ToInt64(txtQuantity.Text);
blOfferList_temp.Rows[RowNo - 1]["Quantity"] = quantity;
我可以使用
tblOfferList_temp.Rows[RowNo - 1]["Quantity"] = 100;
我真的需要第一个。有没有办法使用变量修改数据?
我想更多地解释一下我的问题
首先,我有一个像我这样定义的数据表
private DataTable tblOfferList_temp;
然后在一个方法中我创建像这样的数据表
tblOfferList_temp = new DataTable();
tblOfferList_temp.Columns.Add("OfferID", typeof(string));
tblOfferList_temp.Columns.Add("RowNo", typeof(Int16));
tblOfferList_temp.Columns.Add("SMCode", typeof(string));
tblOfferList_temp.Columns.Add("SSCode", typeof(string));
tblOfferList_temp.Columns.Add("Quantity", typeof(Int64));
tblOfferList_temp.Columns.Add("TotalArea", typeof(Int64));
tblOfferList_temp.Columns.Add("TotalValue", typeof(Int64));
在form_load中调用此方法后,我必须将数据存储到其中,然后在需要时显示和修改其数据
商店和展示方法工作正常
(接下来用按钮调用商店方法,用按钮prev和下一个显示)
显示后需要和修改方法,我有问题。
我不知道如何更好地解释。在prev按钮控件显示prev行值后,我需要修改它们并将它们存储在数据表中并单击下一步按钮
答案 0 :(得分:0)
我注意到第一个示例中的拼写错误 - blOfferList_temp
而不是tblOfferList_temp
。
除此之外,这两个代码段之间的唯一区别是,在第一个代码片段中,您分配的是Int64
类型的值,而在第二个代码片段中,您分配的是Int32
(默认值)对于未指定的数字)。如果只使用100
工作正常,请尝试转换为Int32
而不是:
Int32 quantity = Convert.ToInt32(txtQuantity.Text);
blOfferList_temp.Rows[RowNo - 1]["Quantity"] = quantity;
如果txtQuantity.Text
中包含的值不适合Int32
,则必须更改数据表以接受Int64
s而不是{s}完全不同的故事。
(我还建议在txtQuantity.Text
不包含可解析字符串的情况下进行一些错误处理,但当然这非常依赖于该值的来源。)