C# 使用ADO.NET C从MS Access中删除时,条件表达式中的数据类型不匹配错误
我用Microsoft 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
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"));