在SQL char和C#之间转换

时间:2011-11-02 10:59:44

标签: c# .net sql-server sql-server-2005

如果我想从C#插入char(2)类型的数据库列。 我将在C#中使用哪种数据类型?

如果使用以下代码:

private static SqlParameter addParameterValue(string parameterName, ? parameterValue, SqlCommand command)
    {
        SqlParameter parameter = new SqlParameter(parameterName, SqlDbType.Char);
        parameter.Value = parameterValue;
        command.Parameters.Add(parameter);
        return parameter;
    }

我将为parameterValue提供什么类型的内容?

当parameterValue的类型为string时,我已经有这样的方法,所以当告诉SqlDbType.Char和SqlDbType.Varchar

之间的区别时,这可能是个问题。

3 个答案:

答案 0 :(得分:7)

charvarcharncharnvarchar实际上是字符串

size有助于确定字符串的持续时间......

顺便说一下

char具有固定长度,因此如果您想在"1"中使用char(2),则内容将是实际"1 "

varchar(2)将为"1"

n部分代表unicode,因此这些字段中的所有内容都将使用Unicode。


通常我们使用nvarchar来保存数据上的一些空间,就像你有一个char(250)数据库将始终保存全长一样,空varchar(250) 1}}什么都不会。

在我们的编程语言中,我们使用填充来执行char所做的事情,例如,在C#中

"1".PadLeft(2);
"1".PadRight(2);

将分别输出" 1""1 "

答案 1 :(得分:4)

string如果是2个字符或更短,则可以正常工作

答案 2 :(得分:1)

尝试使用AddWithValue方法并将其分为字符串

它只是一行。无需单独的方法。

command.Parameters.AddWithValue(parameterName, parameterValue);