从数字等于的Access数据库中选择

时间:2015-01-19 12:23:35

标签: c# visual-studio ms-access int

我在从数据库等于零的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();

2 个答案:

答案 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);

另外,为了安全起见,你应该真正考虑参数化你的查询,这样你就不会遇到像这样的拼写错误。