看板 C_Sharp 關於我們 聯絡資訊
※ 引述《kidnaper (弗卡夏)》之銘言: : 小弟日前買了C#開始學習 : 最近都在跟學長學習 資料庫(SQL)的應用!! : 今天在練習刪除功能時候遇到一個問題 : { : string selectCmb = ""; : string KeyIN=""; : KeyIN = textBox2.Text; : selectCmb = "DELETE FROM data WHERE 學號 = '"+KeyIN+"'"; : dataGridView1.DataSource = Dummy_DataTable(selectCmb, "data"); : dataGridView1.AutoResizeColumns(); : } : 上述是以往學長們用的刪除指令!! DataGridView1 放入的是Access類型檔案 : 如今我在Access檔案裡把學號的欄位改成數字類型的資料 : 便出現"準則運算式的資料類型不符合" 我們就試著把改成: : 第二行 int KeyIN; : 第三行 KeyIN=textBox2.int.parse; : 第四行後段 selectCmb= "........學號=KeyIN"; : 還是讀不到textBox2輸入的數字!!(我試了好幾種方法) : 請問我該怎麼把KeyIN這個變數宣告為數字類型!! : 然後是還有那邊需要被何修改的!! : 煩請幫忙解答 謝謝大家!! 你把 SQL跟C#搞混了 ,對於資料庫而言,你傳入的就是SQL 指令,全都都是字串 所以KeyIn是String類別完全合理 並不需要去更動 除非為了C#程式需求才需存成int 但最終轉換成sql語法時仍需轉換回String 所以原始的部分完全不用改......只需更動selectCmb一點點 你的錯誤點應該是SQL中 ''的使用代表是字串 所以學號(int型態) = '某個數字'(String型態) 會出錯 selectCmb = "DELETE FROM data WHERE 學號 = '"+KeyIN+"'"; 你把 ' '兩點移除掉看看 selectCmb = "DELETE FROM data WHERE 學號 = " + KeyIN; 這樣應該就對了.... -- 我很弱 如果哪裡錯還請指教我 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.89.25
kidnaper:完全正確.........感謝!! 12/16 03:00
kidnaper:我可以睡覺了..^^ 12/16 03:06
BETNPP:晚安 12/16 03:06
andymai:我還以為原po連學號的型態都換成數字了...不過為什麼一定 12/16 04:33
andymai:要換成數字?前面parse之後~在Sql又透過''+KeyIN換回字串~ 12/16 04:34
andymai:這...真這樣做的話~不是脫褲子放屁嗎? 12/16 04:35