台灣最大程式設計社群網站
線上人數
627
 
會員總數:245215
討論主題:189089
歡迎您免費加入會員
討論區列表 >> C# >> 請問winfrom textbox數值如何存入資料庫
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問winfrom textbox數值如何存入資料庫
價值 : 5 QP  點閱數:354 回應數:2

樓主

Chris
門外漢
0 3
38 4
發送站內信

小弟剛學C#

遇到textbox寫入資料庫失敗問題

也知道textbox內為字串,也轉成數字型態了

但是還是寫入失敗,錯誤訊息顯示"System.Data.SqlClient.SqlException: '將 varchar 值 'qty' 轉換成資料類型 int 時,轉換失敗。'"

可否請前輩賜教一下,會啥會寫入失敗呢?

謝謝

下述為程式碼
string mo = textBox1.Text.Trim();
string type = comboBox1.Text;
int qty = int.Parse(textBox2.Text);




String strSQL = " INSERT INTO mo (mo, type, quantity) VALUES ('mo', 'type', convert(int,'qty')) ";
SqlConnection sqlConn = new SqlConnection("server=DESKTOP-UIUJSDG\\SQLEXPRESS;database=X36;UID=sa;PWD=sa@123");
sqlConn.Open();
SqlCommand sqlcommand = new SqlCommand(strSQL, sqlConn);
sqlcommand.ExecuteNonQuery();
sqlConn.Close();

搜尋相關Tags的文章: [ winfrom textbox數值如何存入資料庫 ] ,
本篇文章發表於2019-04-27 10:31
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
問題應該出在這裡 convert(int,'qty')
話說你真的知道自己在做什麼嗎?
你這是直接把字串qty帶入SQL,
應該要改成這樣 VALUES ('mo', 'type', " + qty + ") ";
本篇文章回覆於2019-04-27 17:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

誰是誰
檢舉此回應
給樓主:

微軟有一個文件是專門講 ADO.NET,既然你初學,好好把那個文件練一練,絕對有幫助。你的問題正確處理的第一步,就是學會不要在 SQL 敘述中用組字串的方式傳參數,以避免 SQL Injection。

使用標準的參數式查詢才是正確的方式,參考 ADO.NET

甚麼是 SQL Injection 請參考 : 何謂 SQL Injection
本篇文章回覆於2019-04-28 03:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.