2017-04-25 75 views
0

我發現一個或所需的參數C#更新查詢沒有給出錯誤的地方我試圖更新我的C#訪問數據庫這裏是代碼... 希望有人會是我的助手..C#更新查詢

private void updatebutton_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     con.Open(); 
     OleDbCommand cmd = new OleDbCommand(); 
     cmd.Connection = con; 
      string query = "update Emplyeedata set [ID]='" + midbox.Text + "',[Name]='" + mnamebox.Text + "',[Deisgnation]='" + mdesbox.Text + "',[Leave]='" + mleavebox.Text + "'Where [Name]='"+mnamebox.Text+"'"; 
     cmd.CommandText = query; 

     cmd.ExecuteNonQuery(); 
     con.Close(); 
     cb(); 
     MessageBox.Show("Updated", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); 
    } 
    catch 
    { 
     MessageBox.Show("Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    }       
} 
+5

當你建立一個SQL查詢,請不要使用字符串連接。 https://msdn.microsoft.com/en-us/library/ms175528(v=sql.105).aspx –

+0

你正在得到什麼錯誤? –

+0

您能否發佈您收到的實際錯誤,或者我們無能爲力。 – Wheels73

回答

1

作爲一個更多的改進,你可以嘗試這樣,如果你可以發佈完整的錯誤信息。

private void updatebutton_Click() 
    { 
     using (OleDbConnection con = new OleDbConnection("Define your Connection String here")) 
     { 
      string query = @"UPDATE Emplyeedata 
         SET [id] = @ID 
          ,[Name] = @Name 
          ,[Deisgnation] = @Deisgnation 
          ,[Leave] = @Leave 
         WHERE [Name] = @Name"; 

      using (OleDbCommand cmd = new OleDbCommand(query, con) { CommandType = CommandType.Text }) 
      { 
       cmd.Parameters.AddWithValue("@ID", midbox.Text); 
       cmd.Parameters.AddWithValue("@Name", mnamebox.Text); 
       cmd.Parameters.AddWithValue("@Deisgnation", mdesbox.Text); 
       cmd.Parameters.AddWithValue("@Leave", mleavebox.Text); 
       cmd.Parameters.AddWithValue("@Name", mnamebox.Text); 
       con.Open(); 
       cmd.ExecuteNonQuery(); 
      } 
      con.Close(); 
     } 
    } 

(這是一個非常非結構化的方式,請按照SOLID原理/秒)

+0

新的OleDbConnection(「ConnectionString」),你用你的ConnectionString變量檢索ConnectionString文本作爲示例 –