使用带有参数的 SqlDataAdapter.Update()
如何尝试弄清楚如何使用参数化查询来使用 SqlDataAdapter.Update(DataTable) 方法。如何将值添加到命令而不迭代整个数据表?
如何在事务中执行 SqlDataAdapter 插入和更新方法?
到目前为止我所得到的内容如下:
internal void InsertUpdate(DataTable dt){
using(var con = new SqlConnection(ConnectionString)){
var sb = new StringBuilder();
sb.AppendLine("UPDATE myTable");
sb.AppendLine("SET prop1 = @p1, prop2 = qp2");
sb.AppendLine("WHERE id = @id");
var cmd = new SqlCommand(sb.ToString());
cmd.Parameters.AddWithValue("p1", ????);
cmd.Parameters.AddWithValue("p2", ????);
cmd.Parameters.AddWithValue("id", ????);
var adapter = new SqlDataAdapter(selectQuery, con);
adapter.UpdateCommand = cmd;
adapter.Update(dt);
}
}
最好的问候
杰伊
How trying to figure out how to use SqlDataAdapter.Update(DataTable) method using a parameterised query. How can I add the values to the command without iterating over the whole DataTable?
And how can I execute the SqlDataAdapter insert and update methods within a transaction?
What I have so far is the following:
internal void InsertUpdate(DataTable dt){
using(var con = new SqlConnection(ConnectionString)){
var sb = new StringBuilder();
sb.AppendLine("UPDATE myTable");
sb.AppendLine("SET prop1 = @p1, prop2 = qp2");
sb.AppendLine("WHERE id = @id");
var cmd = new SqlCommand(sb.ToString());
cmd.Parameters.AddWithValue("p1", ????);
cmd.Parameters.AddWithValue("p2", ????);
cmd.Parameters.AddWithValue("id", ????);
var adapter = new SqlDataAdapter(selectQuery, con);
adapter.UpdateCommand = cmd;
adapter.Update(dt);
}
}
Best Regards
Jay
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要使用Parameters.AddWithValue(...),而是使用Parameters.Add(new SqlParameter(...)) 并在此处使用SqlParameter 文档的最后三个构造函数之一: SqlParameter 类 MSDN 文档。它们允许您指定将在运行时用于填充参数的列。例如,以下是我当前程序之一中的一行:
请注意“FK_CustomerID”的第二次使用,它指示使用此 DataTable 列作为参数。
关于使用事务,请查看以下内容以获取一些想法:事务TableAdapters,一个懒人的方法。
问候, 德鲁
Instead of using Parameters.AddWithValue(...), use Parameters.Add(new SqlParameter(...)) and use one of the last three constructors for SqlParameter documents here: SqlParameter Class MSDN documentation. They allow you to specify a column which will be used at runtime to fill the parameter. For example, here is a line from one of my current programs:
Note the second use of "FK_CustomerID", which indicates to use this DataTable column for the parameter.
Regarding using transactions, take a look at this for some ideas: Transactions with TableAdapters, a lazy man's approach.
Regards, Drew