Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ADO.NET C从MS Access中删除时,条件表达式中的数据类型不匹配错误_C#_Sql_Database_Ms Access_Ado.net - Fatal编程技术网

C# 使用ADO.NET C从MS Access中删除时,条件表达式中的数据类型不匹配错误

C# 使用ADO.NET C从MS Access中删除时,条件表达式中的数据类型不匹配错误,c#,sql,database,ms-access,ado.net,C#,Sql,Database,Ms Access,Ado.net,我用Microsoft Access数据库编写了插入和删除一些数据的代码,我可以插入数据,但是当我删除数据时,我在条件表达式中出现了错误数据类型不匹配,我不知道为什么!!!有人帮我吗 提前感谢 private void Savebt_Click(object sender, EventArgs e) { //try //{ OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB

我用Microsoft Access数据库编写了插入和删除一些数据的代码,我可以插入数据,但是当我删除数据时,我在条件表达式中出现了错误数据类型不匹配,我不知道为什么!!!有人帮我吗

提前感谢

  private void Savebt_Click(object sender, EventArgs e)
{
    //try
    //{
    OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\me\Library Store\Library Store\Store.accdb");
     try
{
    conn.Open();

    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = conn;
    cmd.CommandText = "INSERT INTO Libarary ( ISBN, [Name], Gategory, Author, Cost, [Date]) " +
          "VALUES ( @ISBN, @Name, @Gategory, @Author, @Cost, @Date) ";
    cmd.Parameters.AddWithValue("@ISBN", ISBNTB.Text);
    cmd.Parameters.AddWithValue("@Name", NameTB.Text);
    cmd.Parameters.AddWithValue("@Gategory", GategoryTB.Text);
    cmd.Parameters.AddWithValue("@Author", AuthorTB.Text);
    cmd.Parameters.AddWithValue("@Cost", int.Parse(CostTB.Text));
    cmd.Parameters.AddWithValue("@Date", dateTimePicker1.Text);



    cmd.ExecuteNonQuery();

        MessageBox.Show("Book Added!");
        conn.Close();


}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}
}

} 我试图删除的记录出错

数据库记录
您正面临此错误,因为您传递给查询的一个/多个参数与数据库中的参数类型不同。交叉核对。理想情况下,应该像这样向查询传递参数

cmd.Parameters.Add("@Date", OleDbType.Date); //note i have specified the db type
cmd.Parameters["@Date"].Value =dateTimePicker1.Value;
这将确保您的类型与数据库中定义的类型相同

请尝试:

cmd.Parameters.AddWithValue("@Date", dateTimePicker1.Value);
DateTimePicker.Text返回选定值的字符串表示形式,而不是值本身。

如何

cmd.Parameters.AddWithValue("@Date", dateTimePicker1.Value.ToString("dd-MM-yyyy"));

它告诉我,这本书是要卖掉的!但我去了数据库记录还没找到removed@MohamedSafwat你告诉自己那本书已经卖了。执行查询只意味着执行代码。如果仍未删除,则表示您的查询无效。虽然我强烈建议你在id的基础上进行所有处理,而不是通过那么多字段,但是我编辑我的代码时,请检查它并告诉我有什么问题,谢谢
cmd.Parameters.AddWithValue("@Date", dateTimePicker1.Value.ToString("dd-MM-yyyy"));