作者BETNPP (NPP)
看板C_Sharp
标题Re: [问题] 变数宣告!!
时间Thu Dec 16 02:56:50 2010
※ 引述《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
1F:推 kidnaper:完全正确.........感谢!! 12/16 03:00
2F:推 kidnaper:我可以睡觉了..^^ 12/16 03:06
3F:→ BETNPP:晚安 12/16 03:06
4F:→ andymai:我还以为原po连学号的型态都换成数字了...不过为什麽一定 12/16 04:33
5F:→ andymai:要换成数字?前面parse之後~在Sql又透过''+KeyIN换回字串~ 12/16 04:34
6F:→ andymai:这...真这样做的话~不是脱裤子放屁吗? 12/16 04:35