2013-06-21 229 views
0

我試圖在我的SQL Server數據庫中插入字符串到char(20)列。如何將字符串轉換爲Char(20)sql數據類型

我設定的字符串爲等於一個值,然後將其添加到每次我嘗試它結束了在數據庫

picture

這樣看時間的參數

thisstring = "1914" 
cmd.Parameters.AddWithValue("@code", thisstring) 

然而

我需要它看起來像1913, 000000, 000001的。

當我嘗試墊用空格

thisstring= thisstring.PadLeft(20, " ") 

thisstring = "  " & thisstring 

我越來越

字符串或二進制數據字符串將被截斷

即使該字段不是總共20個字符

我在做什麼錯了?

編輯***這裏是SQL Server

http://imgur.com/BbV6VQv

+0

什麼是SQL或'cmd',即'cmd.CommandText'存儲過程調用標準語法試試? – shahkalpesh

+0

thisstring = thisstring.PadLeft(20,「」)應該已經工作了。你可以仔細檢查參數定義。這可能與表格定義不同。 –

+0

cmd =新的SqlCommand(strSQL,conn)和執行是cmd.ExecuteNonQuery() – user867621

回答

1

我沒有絕對的把握之列,但我認爲問題出在AddWithValue。
雖然方便,但此方法不允許指定傳遞給數據庫引擎的確切數據類型,也不允許指定參數的大小。它總是傳遞一個C#UNICODE字符串的nvarchar參數。

我想你應該用來建立一個參數

Dim p = new SqlParameter("@code", SqlDbType.Char, 20) 
p.Value = thisstring.PadLeft(20, " ") 

See this very interesting article on MSDN

相關問題