2011-11-02 127 views
5

如果我想從C#中插入char(2)類型的數據庫列。 我將在C#中使用什麼數據類型?SQL char和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是字符串類型,所以告訴SqlDbType.Char和SqlDbType.Varchar的區別

回答

4

string將正常工作時,如果是2個字符,這可能是一個問題短

+0

所以只需要做一個字符串的長度檢查? – ediblecode

+0

我認爲SQL會按'字符串或二進制數據將被截斷'而不是自動截斷的方式拋出異常。取決於我認爲的設置 – flipchart

5

charvarcharncharnvarchar實際上是字串

size有助於確定該字符串是多久?

的方式

char具有固定的長度,所以,如果你想擁有"1"char(2)內容將實際"1 "

varchar(2)"1"

n部分看臺對於Unicode,因此這些字段中的所有內容都將採用Unicode。


通常我們使用nvarchar,以節省數據的一些空間,因爲如果你有一個char(250)數據庫將始終保存完整的長度,爲空varchar(250)將一無所獲。

在我們的編程語言,然後我們分別

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

將輸出" 1""1 "使用填充做什麼char做,例如,在C#。

+1

我認爲你的varchar示例是錯誤的。 –

1

嘗試使用AddWithValue方法並將其作爲字符串存儲,

它只是一行。不需要有獨立的方法。

command.Parameters.AddWithValue(parameterName, parameterValue); 
+0

非常感謝,這略微縮短了我的代碼。儘管我繼承了這種方法。 – ediblecode