在SQL char和C#之间转换

edi*_*ode 6 .net c# 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;
    }
Run Code Online (Sandbox Code Playgroud)

我会给parameterValue什么类型的?

当parameterValue是string类型时,我已经有这样的方法,所以当告诉SqlDbType.Char和SqlDbType.Varchar之间的区别时,这可能是个问题

bal*_*dre 8

char,varchar,nchar,nvarchar实际上是字符串

size有助于确定该字符串是多久?

顺便说说

char有一个固定的长度,所以如果你想"1"在一个char(2)内容将是实际的"1 "

varchar(2) 将会 "1"

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


通常我们用来nvarchar在数据上节省一些空间,好像你有一个char(250)数据库总会保存全长,因为空的varchar(250)将是什么都没有.

在我们的编程语言中,我们然后使用填充来执行char例如C#中的操作

"1".PadLeft(2);
"1".PadRight(2);
Run Code Online (Sandbox Code Playgroud)

将输出" 1""1 "分别.


fli*_*art 4

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