2017-04-25 79 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文本作为示例 –