2015-11-01 28 views
-1

我試圖瞭解SqlParameterCollection.Add()方法中的size參數。簡單閱讀:試圖瞭解字符串的SqlParameterCollection.Add()大小參數

作爲Int32的大小。

確實沒有幫助。

說,我的SQL Server表列被定義爲這樣的:

CREATE TABLE myTable 
    ([col1] NVARCHAR(5)) 

所以,當我加入一個新行到表:

string strSQL = "INSERT INTO myTable ([col1]) " + 
    "VALUES (@strCol1)"; 

string strValue = "abcdef"; 

using (SqlCommand cmd = new SqlCommand(strSQL, connection)) 
{ 
    cmd.Parameters.Add("@strCol1", SqlDbType.NText, 5).Value = 
     strValue; 

    cmd.ExecuteNonQuery(); 
} 

什麼樣的價值將被添加到我的col1列?或者cmd.Parameters.Add會拋出異常?

+0

我不知道爲什麼你失望投票的答案,而答案將指導您糾正文檔,你可以看到**「,那麼該值將被截斷以匹配大小。「** –

+0

@RezaAghaei:我標記的答案沒有給我一個羅嗦的MS文檔的鏈接,但用簡單的語言對其進行了解釋。 – c00000fd

+0

該鏈接指導您瞭解'Size'屬性,特別是當您說「將大小定義爲Int32時,並沒有什麼幫助。」意味着你需要更多的描述,而不僅僅是底線答案:) –

回答

2

您將獲得沒有例外和「ABCDE」會被插入到你的表

+0

謝謝你解釋它。 – c00000fd

2

您可以找到SqlParameter.Size Property的完整文檔。

根據您可以看到的文檔該值將被截斷以匹配的大小,並且您不會收到異常。

+0

我想知道爲什麼你投下了答案,而答案指導你糾正文檔,你可以看到**「那麼值將被截斷以匹配尺寸。」** –