簡體   English   中英

使用insert命令通過ado.net C#訪問數據庫時出現“連接錯誤”

[英]“ Error in connection” when use insert command to access db with ado.net C#

我編寫代碼來插入一些值以使用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();

謝謝;

給你一個鏡頭,你沒有指出它是什么錯誤,但這應該可以幫助你,如果你知道你是否真的有你試圖插入的所有列

嘗試像這樣寫你的sql語句

INSERT INTO表(Column1,Column2)VALUES(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();

您需要在insert語句中指定列名,以便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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM