【发布时间】:2016-01-01 02:07:22
【问题描述】:
我尝试了以下代码,但我无法从中找到成功消息。这里commandText 可以插入、更新、删除或选择查询,如果它是选择查询,我需要数据集,否则成功消息如 sql 结果@ 987654322@。我不能使用ExecuteScalar 或ExecuteNonQuery 方法,因为执行选择查询时我需要数据集输出。
public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
using (SqlConnection cn = new SqlConnection(connectionString))
{
cn.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e)
{
MessageInfo += "\n" + e.Message;
};
cn.FireInfoMessageEventOnUserErrors = true;
cn.Open();
using (SqlCommand command = new SqlCommand(commandText, cn))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
DataSet dt = new DataSet();
adapter.Fill(dt); // Do something with DataTable
return dt;
}
}
}
}
【问题讨论】:
-
我已经看到了很多关于这个的问题,但似乎唯一真正的选择是自己实现这些消息。问题是您不会从数据库中生成实际消息。
-
是的。我检查了事件处理程序除了第一次之外没有调用。并且 MessageInfo 为空。
标签: c# sql-server