【发布时间】:2026-01-24 18:05:01
【问题描述】:
我有一个 SQL Server 数据库,其中有一个表 Event_Tab 和一个 Int 列 Code。我想将这个Code 与一个特定的string 关联起来,这样我就不会在我的表中保存字符串变量。
所以,我用 In16 输入参数编写了一个过程GetStringCode,它返回了我需要的字符串,然后我用保存在我的表中的另一个参数将它填充到一个列表视图中
这是我的代码:
using (SqlConnection connection = new SqlConnection(connectionstring))
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
DataTable table = new DataTable();
adapter.Fill(table);
foreach(DataRow dr in table.Rows)
{
ListViewItem items = new ListViewItem(dr["Machine"].ToString());
items.SubItems.Add(GetStringCode((short)dr["Code"]).ToString());
items.SubItems.Add(dr["Date_time"].ToString());
listview.Items.Add(items);
}
}
如果你注意到,我做了一个演员来消除错误
无法从 object 转换为 short
到目前为止,一切似乎都还好。但是当尝试运行这段代码时,我得到一个错误
具体演员表无效
什么问题,因为我似乎找不到它......
【问题讨论】:
-
发生错误时“DataRow dr”的内容是什么?可能 "Code" 为空或 null。
-
@Stringfellow,它不是空的,我检查了我的表格数据,它有数字
-
首先在调试器中检查
dr["Code"]的值和实际类型。
标签: c# string listview int dataadapter