2013-08-01 52 views
3

我編寫的代碼插入一些值來訪問數據庫與C#/ ado.net但有一個錯誤出現稱爲「連接錯誤」雖然我使用select命令檢索同一程序中的一些值並且成功工作當使用插入命令訪問db與ado.net時,「連接錯誤」C#

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

謝謝;

+1

什麼是錯誤的全文和類型?是否有內部異常? – Bobson

+0

@ val1,@ val2,@ val3,@ val4,@ val5,@ val6是你數據庫中的所有列嗎? –

+0

一定要點擊[Copy Execption Detial to Clipboard](http://blogs.msdn.com/blogfiles/saraford/WindowsLiveWriter/Didyouknowyoucancopytheexceptiondetailsw_F67C/image_2.png),並將其複製的文本粘貼在一組'

'標籤。 –
                        
                            
                                
                            
                        
                    

回答

2

給這一個鏡頭,你沒有指定什麼樣的錯誤是,但這應該幫助你,如果anythign弄清楚,如果你真的有你想插入到

所有列試着寫你像這樣的sql語句

INSERT INTO表(列1,列2)VALUES (值1,值2),(值1,值)


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

您需要指定插入語句中的列名,以便數據庫知道數據的去向。

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

如果插入值到數據庫的所有列如果插入值與一些列的數據庫,你會得到這個錯誤,您可以使用此查詢

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

,你必須把它寫成

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