C# SQL Server:使用update命令时,数据更新了所有行中的相同行值
SQL Server数据在使用update命令时更新了所有行中的相同行值C# SQL Server:使用update命令时,数据更新了所有行中的相同行值,c#,sql-server,C#,Sql Server,SQL Server数据在使用update命令时更新了所有行中的相同行值 try { SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["NORTHWNDConnectionString"].ToString()); myConnection.Open(); foreach (var i in ord) { SqlCommand sq
try {
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["NORTHWNDConnectionString"].ToString());
myConnection.Open();
foreach (var i in ord) {
SqlCommand sqlcm = new SqlCommand("update Orders Set CustomerID = @CustomerID, EmployeeID = @EmployeeID, ShipVia = @ShipVia, ShipName = @ShipName, ShipAddress = @ShipAddress, ShipCity = @ShipCity, ShipCountry = @ShipCountry", myConnection);
sqlcm.Parameters.AddWithValue("@CustomerID", i.CustomerID);
sqlcm.Parameters.AddWithValue("@EmployeeID", i.EmployeeID);
sqlcm.Parameters.AddWithValue("@ShipVia", i.ShipVia);
sqlcm.Parameters.AddWithValue("@ShipName", i.ShipName);
sqlcm.Parameters.AddWithValue("@ShipAddress", i.ShipAddress);
sqlcm.Parameters.AddWithValue("@ShipCity", i.ShipCity);
sqlcm.Parameters.AddWithValue("@ShipCountry", i.ShipCountry);
sqlcm.ExecuteNonQuery();
sqlcm.Dispose();
}
myConnection.Close();
}
使用此C#代码,所有行中的数据都将相同:
10248 VINET 5 3 Vins et alcools Chevalier 59 rue de l'Abbaye Reimsesddf France
10249 VINET 5 3 Vins et alcools Chevalier 59 rue de l'Abbaye Reimsesddf France
10250 VINET 5 3 Vins et alcools Chevalier 59 rue de l'Abbaye Reimsesddf France
我已将10248 id的Reims
更改为reimsesdf
,但它反映在所有行中,并且其他数据将在所有行中更新
如何修复此问题?您的
更新语句缺少where
条件-因此它会更新表中的所有记录:
update Orders Set
CustomerID = @CustomerID, EmployeeID= @EmployeeID,
ShipVia=@ShipVia, ShipName=@ShipName,
ShipAddress=@ShipAddress,ShipCity=@ShipCity,
ShipCountry= @ShipCountry
在中添加一些条件,其中
(通过记录ID或其他方式)可防止:
update Orders Set
CustomerID = @CustomerID, EmployeeID= @EmployeeID,
ShipVia=@ShipVia, ShipName=@ShipName,
ShipAddress=@ShipAddress,ShipCity=@ShipCity,
ShipCountry= @ShipCountry
where ID = @ID
您的update
语句缺少where
条件-因此它会更新表中的所有记录:
update Orders Set
CustomerID = @CustomerID, EmployeeID= @EmployeeID,
ShipVia=@ShipVia, ShipName=@ShipName,
ShipAddress=@ShipAddress,ShipCity=@ShipCity,
ShipCountry= @ShipCountry
在中添加一些条件,其中
(通过记录ID或其他方式)可防止:
update Orders Set
CustomerID = @CustomerID, EmployeeID= @EmployeeID,
ShipVia=@ShipVia, ShipName=@ShipName,
ShipAddress=@ShipAddress,ShipCity=@ShipCity,
ShipCountry= @ShipCountry
where ID = @ID
当然,您没有WHERE条件来选择要更新的记录。SQL 101。需要教程吗?当UPDATE语句中缺少WHERE条件时,所有记录都会更新。当然,您没有WHERE条件来选择要更新的记录。SQL 101。需要教程吗?当UPDATE语句中缺少WHERE条件时,将更新所有记录。