【发布时间】:2014-08-08 13:26:38
【问题描述】:
在 gridview => 数据库更新功能期间,我使用逐列转换为字符串,以便将数据作为整个命令字符串传递回我的数据库。我知道这听起来很复杂,所以这里是一个例子:
正在使用的类:InvoiceHandler.csDefault.aspx.cs
由于这是一个相当大的 sn-p,所以这里是一个 pastebin:
Default.aspx.cs: http://pastebin.com/Y3fJZ36Z
InvoiceHandler.cs: http://pastebin.com/ZsdAnDxr
在转换的第一个点 (invoiceTableEdited.Columns["Column1"].ColumnName = "@K_INV";) 我收到 NullReferenceException 错误,推测是因为 Default.aspx.cs 中的方法调用
handler.invoiceTableEdited = ViewState["invoiceTable"] as DataTable;
handler.invoiceTableEdited.Rows[row.RowIndex]["K_INVOICE"] = sK_INVOICE;
似乎遇到了麻烦。
我必须怎么做才能解决这个问题?
【问题讨论】:
-
“似乎有问题”不是很有帮助。尝试告诉我们错误或当前结果与预期结果。
-
看起来您遇到了异常,因为您在没有创建任何列的情况下尝试为 invoiceTableEdited 的列集合中的列分配名称。
-
@sr28 你确定吗?在 Default.aspx.cs 中,在
OnUpdate方法中,我在GridView?中的行之外创建这些列? -
我的错误。但是,在 Default.aspx.cs 中,您正在创建 ["column1"] 等,而在 InvoiceHandler.cs 中,您尝试将名称分配给 ["Column1"]。尝试将其更改为 ["column1"]。
-
@sr28 我会忽略列名。我不得不匆忙更改它们以使它们匿名。
标签: c# asp.net gridview datatable nullreferenceexception