2017-02-24 59 views
0

我试图查询一个表,但我得到一个错误,当我执行它,它只发生在我添加“Where Sdate = @ date和Staffid = @ mobile”如果我不'牛逼给它正常工作的条件,这里是代码c#访问查询数据类型不匹配

private void button1_Click(object sender, EventArgs e) 
{ 
    getsum(); 
} 



public void getsum() 
{ 
    string query = @"select SUM(SQuantity) AS Total FROM Sales where [email protected] AND [email protected]"; 
    using (var conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data source=|DataDirectory|\\crepeDB.accdb;")) 
      using (var cmd = new System.Data.OleDb.OleDbCommand(query, conn)) 
      { 
      cmd.Parameters.Add("@mobile", System.Data.OleDb.OleDbType.VarChar).Value = '1'; 
      cmd.Parameters.Add("@date", System.Data.OleDb.OleDbType.VarChar).Value = dateTimePicker1.Value.Date; 

      conn.Open(); 

      using (var rdr = cmd.ExecuteReader()) 
      { 
       if (rdr.Read()) 
       { 
        textBox1.Text = rdr["Total"].ToString(); 
       } 
       rdr.Close(); 
      } 
     } 
} 

希望有人能帮助我解决这个

回答

1

尝试用其它数据类型:

cmd.Parameters.Add("@mobile", System.Data.OleDb.OleDbType.Integer).Value = 1; 
cmd.Parameters.Add("@date", System.Data.OleDb.OleDbType.DBDate).Value = dateTimePicker1.Value.Date; 
+0

试过了,没有错误,但没有结果 –

+0

也听@Gord。 – Gustav