基本上,我想知道可能的是如何在执行存储过程后从新更新的行中检索数据。
例如,假设我们有一个简单的SQL存储过程
sp_PROCS_UPDATE_UpdateUserName:
UPDATE users SET Name = "David";
由此,我希望能够检索更新名称的实际记录,而不仅仅是计数。
这对C#来说是否可行?
答案 0 :(得分:2)
假设您使用的是SQL Server,请尝试以下操作:
UPDATE users SET Name = "David" output inserted.*;
答案 1 :(得分:1)
以下是使用System.Data.SqlClient
命名空间的代码段,您可能还需要using System.Data
。
此代码示例将执行查询并返回受影响的行。
var affectedRows = -1;
var cs = ""; // your connection string
try
{
var cn = new SqlConnection(cs);
cn.Open();
using (var cmd = cn.CreateCommand())
{
cmd.CommandText = your_query; // TBD;
var prm = new SqlParameter("prm", value); // as needed
cmd.Parameters.Add(prm); // as needed
affectedRows = cmd.ExecuteNonQuery();
}
/// and if you have nothing else to do.
cn.Close();
cn.Dispose();
cn = null;
}
catch(Exception ex)
{
System.Diagnostics.Trace.TraceError("Whoops! {0}", ex);
// error handling
}
希望这有帮助!