";连接错误“;当使用insert命令使用ado.net C#访问数据库时

本文关键字:net ado 访问 数据库 命令 insert 错误 quot 连接 | 更新日期: 2023-09-27 18:25:55

我写代码插入一些值以使用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();

谢谢;

";连接错误“;当使用insert命令使用ado.net C#访问数据库时

试试看,你没有指定它是什么错误,但如果有人想知道你是否真的有所有试图插入的列,这应该会帮助你

试着像一样编写sql语句

INSERT INTO表(第1列,第2列)VALUES(价值1,价值2),(价值1、价值2)


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();

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

"INSERT INTO Store (Column1, Column2) VALUES (@val1, @val2)"

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

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

若您在数据库中插入的值只有很少的列,就会出现这个错误,并且必须将其写为

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