3

我编写代码以插入一些值以使用 C#/ado.net 访问数据库,但出现了一个名为“连接错误”的错误,尽管我使用 select 命令在同一程序中检索一些值并成功运行

OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Mohamed\documents\visual studio 2012\Projects\Library Store\Library Store\Book.accdb");

conn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO Store VALUES (@val1,@val2,@val3,@val4,@val5,@val6)", conn);
cmd.Parameters.AddWithValue("@val1", ISBNTB.Text.Trim());
cmd.Parameters.AddWithValue("@val2", NameTB.Text.Trim());
cmd.Parameters.AddWithValue("@val3", GategoryTB.Text.Trim());
cmd.Parameters.AddWithValue("@val4", AuthorTB.Text.Trim());
cmd.Parameters.AddWithValue("@val5", int.Parse(CostTB.Text.Trim()));
cmd.Parameters.AddWithValue("@val6", dateTimePicker1.Text);
cmd.ExecuteNonQuery();
MessageBox.Show(" Done :)");
conn.Close();

谢谢;

4

3 回答 3

2

试一试,您没有指定它是什么错误,但这应该可以帮助您确定是否真的有所有列要插入到

尝试像这样写你的sql语句

插入表(Column1,Column2)值(Value1,Value2),(Value1,Value2)


OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data     Source=C:\Users\Mohamed\documents\visual studio 2012\Projects\Library Store\Library     Store\Book.accdb");

conn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO Store **( Column1, Column2 )** VALUES(@val1,@val2,@val3,@val4,@val5,@val6)", conn);
cmd.Parameters.AddWithValue("@val1", ISBNTB.Text.Trim());
cmd.Parameters.AddWithValue("@val2", NameTB.Text.Trim());
cmd.Parameters.AddWithValue("@val3", GategoryTB.Text.Trim());
cmd.Parameters.AddWithValue("@val4", AuthorTB.Text.Trim());
cmd.Parameters.AddWithValue("@val5", int.Parse(CostTB.Text.Trim()));
cmd.Parameters.AddWithValue("@val6", dateTimePicker1.Text);
cmd.ExecuteNonQuery();
MessageBox.Show(" Done :)");
conn.Close();
于 2013-08-01T19:02:40.950 回答
0

您需要在插入语句中指定列名,以便数据库知道数据的去向。

"INSERT INTO Store (Column1, Column2) VALUES (@val1, @val2)"
于 2013-08-01T19:03:24.410 回答
0

如果您使用所有列将值插入数据库,则可以使用此查询

INSERT INTO Store  VALUES(@val1,@val2,@val3,@val4,@val5,@val6)

如果您将值插入到具有少量列的数据库中,您将收到此错误,您必须将其写为

INSERT INTO Store **( Column1, Column2 )** VALUES(@val1,@val2,@val3,@val4,@val5,@val6)
于 2013-08-01T19:05:15.727 回答