我一直在尝试将 INT 从我的 SQL-Server 数据库加载到我的 C# 应用程序中并将其转换为字符串。
基本上,它是我想用作字符串的数据库表的 ID/主键。 这就是我所做的:
string Variable_ID;
Variable_ID = HandleDBNull(reader, "ID");
我得到一个 IndexOutOfRange 异常。
这是 HandleDBNull 函数:
private string HandleDBNull(SqlDataReader r, string columnName)
{
if (!r.IsDBNull(r.GetOrdinal(columnName)))
return r[columnName].ToString();
else
return String.Empty;
}
它适用于字符串列,因此转换似乎有问题。我已经尝试过 Convert.ToString 并遇到了同样的错误。
有什么想法吗?
最佳答案
我猜测您的 columnName
和 columnOrder
彼此不一致。一个是错误的。由于它们表达相同的信息,所以一个是多余的。我会改用:
// probably should be renamed, btw
private string isDBNull(SqlDataReader r, int columnOrder)
{
if (!r.IsDBNull(columnOrder))
{
return r[columnOrder].ToString();
}
else return "";
}
显然是:
Variable_ID = isDBNull(reader, 0);
虽然我不是非常确定我希望所有内容都是字符串。
关于c# - 将 SQL int 转换为 C# 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12724342/