2015-01-21 66 views
-1

我正在SQL2012中運行數據庫並使用Visual Studio2012 C#構建與數據庫交互的軟件,並且我一直試圖添加一個與文本框交互的按鈕或類似的東西讓用戶添加/編輯數據庫中的行。讓用戶將值添加到數據庫中

代碼:

try 
      { 

       string conString = "Data Source=MIRANDA-PC;Initial Catalog=Futebol do Rosa;Integrated Security=True"; 
       SqlConnection con = new SqlConnection(conString); 
       string selectSql = "Update Players$ SET Player Name='" + textBox3.Text + "' WHERE Player ID= 1"; 
       SqlCommand cmd = new SqlCommand(selectSql, con); 
       con.Open(); 
       cmd.ExecuteNonQuery(); 
       MessageBox.Show("The values have been UPDATED"); 
      } 
      catch{ 
       MessageBox.Show("not so fast ***, error found in your ******** code"); 
      } 
+3

你的問題是什麼? – Bobby 2015-01-21 11:32:11

+0

你能提供代碼嗎? – 2015-01-21 11:36:26

+0

這是我試過的代碼,但我知道這是完全錯誤的,因爲要添加我希望它生成自動ID,這是我只是試圖編輯值,完全失敗 http://pastebin.com/EAxSGdCY – 2015-01-21 11:40:36

回答

0

的代碼在你的鏈接甚至不是安全的。

  • 你SqlConnction和SqlCommand的將不會出售
  • 最終用戶可以使用SQL注入

要把你的SqlConnection和SqlCommand的在using語句。

using (SqlConnection con = new SqlConnection(constring)) 
{ 
    using (SqlCommand cmd = new SqlCommand("your query here", con)) 
    { 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
    } 
} 

添加參數到您的SqlCommand,以避免SQL注入攻擊

cmd.Parameters.AddWithValue("@param", value); 

創建自己的數據庫交互類,不要把一切都在一個類或形式。

如果你讓我們知道錯誤是什麼,我們可以幫助你更多。 另外一件好事是首先谷歌你的錯誤。

+0

在一個稍微有趣的筆記,谷歌搜索程序相關的問題將帶你回到' stackoverflow,ha-ha,ha-ha(弱笑)... – code4life 2015-01-21 12:07:18

0

忽略安全問題(內聯SQL不好,非常糟糕)。您的更新有一些基本錯誤。嘗試:

string selectSql = "Update Players SET Players.Name='" + textBox3.Text + 
        "' WHERE Players.ID= 1"; 

你的表列需要關聯到表與.和表名必須是一樣的,你要更新的一個。我在這裏假設你的表名是Players

+0

在內聯SQL不安全的情況下,它也很難調試。 – Jake 2015-01-21 12:21:32

+0

你知道我是如何讓Players.ID值變化的嗎?我試過numericUpanddown,它沒有工作,然後我嘗試使用文本框,但它表示值是一個字符串,我需要它是一個浮動,沒有找到任何轉換語句,雖然 – 2015-01-21 12:26:08

+0

什麼類型是Players.ID ?如果它是由數據庫生成的,它應該是一個'int'(我認爲)。 – Jake 2015-01-21 12:29:17