如何在C#中修改数据表

时间:2014-12-11 18:43:19

标签: c# datatable

我有一个数据表但是当我使用下面的命令时我无法修改行值。

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行值后,我需要修改它们并将它们存储在数据表中并单击下一步按钮

1 个答案:

答案 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不包含可解析字符串的情况下进行一些错误处理,但当然这非常依赖于该值的来源。)