2015-06-12 110 views
-5

我正在使用C#Express 2010和Microsoft SQL Server 2012.連接c#和sql服務器

我查了很多教程,但我仍然有一個非函數程序。 這是代碼。我究竟做錯了什麼 ?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Data.Sql; 
using System.Data.SqlClient; 

namespace ConnectivityWithSQL 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void addButton_Click(object sender, EventArgs e) 
     {           
      SqlConnection con = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Data Source=WIN-710CP3ATLK2\voisardth"); 
      try 
      { 
       con.Open(); 
       stateLbl.Text = "Connection Reussi !"; 

       SqlCommand cmd = con.CreateCommand(); 
       cmd.CommandText = "INSERT INTO [Name], [SurName], [Age], [PetName] values('"+nameTxtBox.Text+"','"+firstNameTxtBox.Text+"','"+ageTxtBox.Text+"','"+petNametxtBox.Text+"')'"; 

       try 
       { 
        cmd.ExecuteNonQuery(); 
        stateLbl.Text = "Donnée OK"; 
       } 
       catch(Exception) 
       { 
        stateLbl.Text = "Ajout echoué"; 
       } 

      } 
      catch (Exception) 
      { 
       stateLbl.Text= "Connection pas Reussi !"; 
      } 

     } 
    } 
} 

我希望它能夠輸入名稱SurName年齡和有趣的PetName。 那時,我並沒有這樣做,顯示結果

+1

什麼錯誤,如果有的話? P.S - 存儲過程是你的朋友 –

+2

好,除了被SQL注入大開,以什麼樣的方式是這樣的代碼不工作? 「不起作用」不是對問題的描述。什麼*表示*你有沒有按預期工作?你期望它做什麼,它究竟做了什麼?我們無法爲您調試您的代碼。 – David

+1

轟! http://bobby-tables.com/看起來你忘了在你的查詢中提到你的表名。像'INSERT INTO tablename([Name],[SurName],[Age],[PetName])...'再次檢查它的語法。 https://msdn.microsoft.com/en-us/library/ms174335.aspx而''''''''中的最後一個單引號似乎沒有必要。 –

回答

0

你的SQL查詢的一部分是不正確。你有一個插入語句,但沒有告訴SQL服務器你想要插入數據的表。

變化:

cmd.CommandText = "INSERT INTO [Name], [SurName], [Age], [PetName] values('"+nameTxtBox.Text+"','"+firstNameTxtBox.Text+"','"+ageTxtBox.Text+"','"+petNametxtBox.Text+"')'"; 

要:

cmd.CommandText = "INSERT INTO table_name ([Name], [SurName], [Age], [PetName]) values('"+nameTxtBox.Text+"','"+firstNameTxtBox.Text+"','"+ageTxtBox.Text+"','"+petNametxtBox.Text+"')'"; 

參考:http://www.w3schools.com/sql/sql_insert.asp

+0

我的數據源鏈接是:SqlConnection的CON =新的SqlConnection( 「集成安全性= SSPI;堅持安全信息= FALSE;數據源= WIN-710CP3ATLK2 \ voisardth」); 但複查我的實際的鏈接後 WIN-710CP3ATLK2 \ ETML 我不知道爲什麼它顯示錯誤(無法識別的轉義序列)當我remplace「數據源= WIN-710CP3ATLK2 \ voisardth」);「經」數據源= WIN-710CP3ATLK2 \ ETML「);」 –