2009-12-03 51 views
0

我不能更新我的數據庫通過textbox.in數值的情況下,我可以更新,但斜線字符串值。 我的編碼是...如何從TextBox更新數據庫字符串值?

SqlCommand cmdup= new SqlCommand("UPDATE [port1] SET [prt1][email protected] WHERE [no]= 1",cn); 
cmdup.Parameters.Add("@prt1", TextBox1.Text); 
cmdup.ExecuteNonQuery(); 

如果任何人知道答案:回覆我

+0

你會收到什麼錯誤? –

+0

我永遠無法理解爲什麼人們喜歡滾他們的問題回到寫得不好的句子... –

+0

不是每個人都知道或有英語 –

回答

0

只是胡亂猜測:是否prt也許只接受數值?

1

我建議顯式定義參數類型以匹配DB中的類型,並將值傳遞給Parameters.Add作爲適當的類型。

例如此刻,您正在將一個字符串類型值傳遞給Parameters.Add,並且沒有明確定義類型。因此,它會根據所提供的值的類型假定數據類型...因此@prt1類型將作爲NVARCHAR傳遞給數據庫,我相信。

如果PRT1字段的整數。例如,更安全恕我直言,做這樣的事情:

cmd.Parameters.Add("@prt", SqlDbType.Int,4).Value = Int32.Parse(TextBox1.Text); 

cmd.Parameters.AddWithValue("@prt", Int32.Parse(TextBox1.Text)); 

我總是喜歡完全定義我傳遞的參數的類型在SQL中排除任何潛在的,意想不到的問題。

1

檢查@ prt1的數據類型以查看它是否爲Int值,因爲您將同一列設置爲兩個不同的值。

1

將textBox解析爲Integer,因爲您要插入數值,即Int64.Parse(「Textbox1.Text」);與字符串,它確實有問題。

+0

或用的Int32或int.Parse( 「txt1.Text」);但64是很可取的。 。 。 32或64位,如升C強類型語言,所以它的每個數據類型 – Aryapawan

+0

你可以編輯你的答案,而不是把它在位註釋部分嚴格規範。 – Skuld

相關問題