我有一个使用c#的Windows应用程序。我正在使用Northwind Products表,我需要以相同的百分比更新所有单价。我知道如何在SELECT查询中编写这个但是如何使用乘法运算符和sql参数以及UPDATE查询表单类将更新写入我的数据访问层并且它在SQL查询中显示但我没有放置在正确的位置,因为我得到null。谁能帮助我如何编写更新字符串?这是我正在努力解决的SQL部分的片段:
//Update using SQL string
productDataAdapter.UpdateCommand.CommandText =
"UPDATE Products SET " +
"UnitPrice * " + multiplier = "@UnitPrice";
holdParm = new SqlParameter();
holdParm.ParameterName = "@UnitPrice";
holdParm.SourceColumn = "UnitPrice";
productDataAdapter.UpdateCommand.Parameters.Add(holdParm);
//Open connection
productDataAdapter.InsertCommand.Connection.Open();
//usd data adapter to update the Products table
rowCount = productDataAdapter.Update(productsDataSet, "Products");
return rowCount;
答案 0 :(得分:1)
如何执行查询?
decimal factor = 1.1; // for example...
string sql = "UPDATE products set unitPrice = unitprice*" + factor.ToString();
然后使用dbCommand对象,将其设置如下:
IDbCommand cmd = Database.CreateCommand(sql, CommandType.Text);
cmd.ExecuteReader();
这样你就可以运行UPDATE并且只运行更新,并且知道它的作用以及何时发生。当然,根据需要过滤更新,以便您只更新您要更新的内容。
答案 1 :(得分:0)
您正在以非标准方式使用DataAdapter。我建议你考虑两种不同的方法:
在使用DataAdapter将数据保存回数据库时,我看不到进行转换的任何优势。我可以通过这种方法看到的一个缺点是,习惯于使用DataAdatpers简单地加载和保存数据的程序员会感到困惑。