2013-04-03 109 views
0

我想使用基於服務的數據庫將數據插入數據庫我使用Visual Studio 2010.我創建了表,但它不起作用,這裏是我的代碼: 我會如果您有代碼如何插入到數據庫的建議,請加以理解。插入數據到數據庫Visual Studio

public void AddAnimal(int animalID, string name, double age, string category, string gender, string extraAnimalInfo) 
    { 
     using (SqlConnection con = new SqlConnection(DBAccessLayer.Properties.Settings.Default.AnimalDBConnectionString)) 
     { 
      con.Open(); 
      try 
      { 
       using (SqlCommand command = new SqlCommand("INSERT INTO AnimalTable VALUES(@AnimalID, @Name, @Age, @Category, @Gender, @ExtraAnimalInfo)", con)) 
       { 
        Console.WriteLine("Here 4"); 
        command.Parameters.Add(new SqlParameter("AnimalID", animalID)); 
        command.Parameters.Add(new SqlParameter("Name", name)); 
        command.Parameters.Add(new SqlParameter("Age", age)); 
        command.Parameters.Add(new SqlParameter("Category", category)); 
        command.Parameters.Add(new SqlParameter("Gender", gender)); 
        command.Parameters.Add(new SqlParameter("ExtraAnimalInfo", extraAnimalInfo)); 
        command.ExecuteNonQuery(); 
       } 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Could not insert."); 
      } 
     } 

UPDATE1: 當我將數據插入到該行受影響的數據庫,但是當我從服務器資源管理器沒有打開數據庫表發生了變化。


當我將數據插入到該行受影響的數據庫,但是當我從服務器資源管理器打開數據庫表我沒有看到任何改變。

+0

定義「不工作」。拋出異常?哪個例外?什麼信息與該異常相關聯? –

+0

按照Eric J.的說法,將Console.WriteLine(「Could not insert。」);改爲Console.WriteLine(「Could not insert:」+ ex);'你會得到一些有用的信息你或我們可以用它來診斷正在發生的事情。 –

+0

當我將數據插入數據庫時​​,行受到影響,但是當我從服務器資源管理器打開數據庫表時,沒有任何更改。 – EM10

回答

0

sql insert命令需要values關鍵字前面的列名。

INSERT INTO AnimalTable(AnimalID,姓名,年齡,種類,性別,ExtraAniamlInfo)VALUES(@AnimalID,@Name,@Age,@Category,@Gender,@ExtraAnimalInfo)

+1

如果您指定每列,並按照它們在表格中出現的相同順序,則不需要它。至少對於Oracle和其他一些。 –

+0

對於SQL Server也是如此 –

1

我也有類似的問題。對我來說,這是連接字符串。原來我有

「Data Source =。\ SQLEXPRESS; AttachDbFilename =」+「| DataDirectory | pr.mdf;」 +「集成安全性=真;用戶實例=真」;

當我替換| DataDirectory |使用數據庫的完整路徑(在解決方案探索中右鍵單擊數據庫,單擊屬性,然後使用完整路徑)。有效。它接近好像有一些不同的數據庫副本......即。在\ bin \ Debug \文件夾中有它的一個副本。

+0

我來自谷歌搜索相同的解決方案。它解決了我的問題。謝謝 – YourFriend