我在从数据库等于零的Access数据库中选择项目时遇到一些困难。下面是我的代码,我不断收到数据类型错误。在Access上我将我的NumScore作为长整数。我在双重和不成功之间来回走动。谢谢你的帮助。
int Num= 0;
con.Open();
cmd = new OleDbCommand("Select Inc, Reviewed from upload Where NumScore='" + Num + "'", con);
da3 = new OleDbDataAdapter(cmd);
da3.Fill(dt3);
dataGridView1.DataSource = dt3;
con.Close();
答案 0 :(得分:3)
您将变量Num放在单引号之间。这会将您的Num
转换为字符串。因此删除引号可能是一种解决方案
但你应该使用参数化查询
cmd = new OleDbCommand(@"Select Inc, Reviewed from upload
Where NumScore=@v", con);
cmd.Parameters.AddWithValue("@v", Num);
da3 = new OleDbDataAdapter(cmd);
通过这种方式,数据库引擎接收一个Numeric参数并正确处理它。
答案 1 :(得分:2)
单个撇号使您的号码被视为字符串文字。删除它们:
cmd = new OleDbCommand("Select Inc, Reviewed from upload Where NumScore=" + Num, con);
另外,为了安全起见,你应该真正考虑参数化你的查询,这样你就不会遇到像这样的拼写错误。