c# - 将 SQL int 转换为 C# 字符串

标签 c# sql sql-server

我一直在尝试将 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 并遇到了同样的错误。

有什么想法吗?

最佳答案

我猜测您的 columnNamecolumnOrder 彼此不一致。一个是错误的。由于它们表达相同的信息,所以一个是多余的。我会改用:

// 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/

相关文章:

MySQL分段排序

mysql - 查询返回上个月的变化

sql - 如何在 SSMS 中显示批量中单个查询的实际查询计划?

c# - 在 try catch 中使用 try catch 好吗?

c# - 这个。和列表<T>

mysql - 从多个 MySQL 表计算总销售额

sql-server - 存储过程中的TSQL互斥访问

sql-server - SQL Server 2008 未使用空间索引

c# - HtmlElement.invoke (“click” ) 不起作用

c# - 单声道 : Set a program to launch at startup for alternative OS