7

If I want to insert into a database column of type char(2) from C#. What data type would I use in C#?

If using the following code:

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;
    }

What type would I give to parameterValue?

I already have method like this when the parameterValue is of type string, so this could be a problem when telling the difference between SqlDbType.Char and SqlDbType.Varchar

3 Answers 3

10

char, varchar, nchar, nvarchar are actually strings

the size helps to determine how long the string is...

by the way

char has a fixed length, so if you want to have "1" in a char(2) the contents will be actual "1 "

varchar(2) will be "1"

the n part stands for unicode, so everything inside those fields will be in Unicode.


normally we use nvarchar to save some space on the data, as if you have a char(250) the database will always save the full length, as an empty varchar(250) will be nothing.

In our programming language we then use padding to do what char does, for example, in C#

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

will output " 1" and "1 " respectively.

Sign up to request clarification or add additional context in comments.

Comments

4

string will work fine if it is 2 characters or shorter

2 Comments

So just need to do a length check on the string?
I think that SQL will throw an exception along the lines of 'string or binary data would be truncated' rather than automatically truncating. Depends on the setup I suppose
1

try using AddWithValue method and parce it as string,

it is only a one line. no need to have a seperate method.

command.Parameters.AddWithValue(parameterName, parameterValue);

1 Comment

thanks a lot, this has shortened my code slightly. Although I inherited this method.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.