Преобразование между SQL char и C # - PullRequest
6 голосов
/ 02 ноября 2011

Если я хочу вставить в базу данных столбец типа char (2) из ​​C #. Какой тип данных я бы использовал в 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;
    }

Какой тип я бы дал параметру Value?

У меня уже есть такой метод, когда параметрValue имеет тип string, так что это может быть проблемой, если указать разницу между SqlDbType.Char и SqlDbType.Varchar

Ответы [ 3 ]

7 голосов
/ 02 ноября 2011

char, varchar, nchar, nvarchar фактически являются строками

size помогает определить, какова длина строки ...

кстати

char имеет фиксированную длину, поэтому, если вы хотите иметь "1" в char(2), содержимое будет актуальным "1 "

varchar(2) будет "1"

часть n означает Unicode, поэтому все внутри этих полей будет в Unicode.


обычно мы используемnvarchar для экономии места в данных, как будто у вас есть char(250), база данных всегда будет сохранять полную длину, так как пустой varchar(250) будет ничем.

На нашем языке программирования мы тогдаиспользуйте padding, чтобы сделать то, что char делает, например, в C #

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

будет выводить " 1" и "1 " соответственно.

4 голосов
/ 02 ноября 2011

string будет нормально работать, если он будет 2 символа или короче

1 голос
/ 02 ноября 2011

попробуйте использовать метод AddWithValue и обработать его как строку,

это всего одна строка. нет необходимости иметь отдельный метод.

command.Parameters.AddWithValue(parameterName, parameterValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...