我的数据库中的所有数据都会更新。如何仅更新1行?

时间:2017-08-03 09:55:36

标签: c# mysql

using(MySqlConnection conn = new MySqlConnection(myConstring))                                  
using (MySqlCommand cmd = new MySqlCommand(query, conn)                    
{                        
    conn.Open();                    
    cmd.Parameters.Add("?compname", Tb_AddWsComp.Text);                        
    cmd.Parameters.Add("?alloc", Tb_AddWsAlloc.Text);                        
    cmd.Parameters.Add("?department", Cb_AddWsDepart.Text);                        
    cmd.Parameters.Add("?facility", Cb_AddWsFacility.Text);                        
    cmd.Parameters.Add("?ipadd", Tb_AddWsIpAd.Text);                        
    cmd.Parameters.Add("?emailadd", Tb_AddWsEmail.Text);                        
    cmd.Parameters.Add("?os", Cb_AddWsOs.Text);                        
    cmd.Parameters.Add("?processor", Tb_AddWsProcess.Text);                        
    cmd.Parameters.Add("?memory", Tb_AddWsMemory.Text);                        
    cmd.Parameters.Add("?pkey", Cb_AddWsPkey.Text);                        
    cmd.Parameters.Add("?mskey", Tb_AddWsOfficeKey.Text);                        
    cmd.Parameters.Add("?sophos", Cb_AddWsSophos.Text);                        
    cmd.Parameters.Add("belarcdate", belarcDate);                        
    cmd.Parameters.Add("?remarks", Tb_AddWsRemarks.Text);                        
    cmd.Parameters.Add("?sysadmin", Tb_AddWsSysAd.Text);

    MessageBox.Show("Updated");                        
    cmd.ExecuteNonQuery();                        
    conn.Close();
}

string query = "UPDATE addwsinventory SET compname =?compname,alloc=? alloc,department=?department,facility=?fac‌​ility,  
ipadd=?ipadd,e‌​mailadd= emailadd,os‌​=?os,processor=?proc‌​essor,memory=?memory‌​,pkey=?pkey,mskey=?m‌​ skey,sophos=?sophos,‌​  
belarcdate=?belarcda‌​te,remarks=?remarks,‌​sysadmin=sysadmin "; 

以上代码正常运行,但我的数据库中的所有数据都已修改,我该如何解决?

1 个答案:

答案 0 :(得分:0)

Update会更改现有数据,您需要使用WHERE指定要更改的数据。

UPDATE [ database_name . [ schema_name ] . | schema_name . ] table_name   
SET { column_name = { expression | NULL } } [ ,...n ]  
[ FROM from_clause ]  
[ WHERE <search_condition> ]   
[ OPTION ( LABEL = label_name ) ]  
[;] 

所以如果是:

string query = "UPDATE addwsinventory SET compname .../... WHERE <your condition> ";

如果您只想添加新值,请使用Insert插入数据库。

INSERT [INTO] table_or_view [(column_list)] data_values