【发布时间】:2016-04-19 18:33:57
【问题描述】:
我们知道 Ms Sql 2000 不支持 MultipleActiveResultSets。
我可以毫无例外地将 Dapper 与异步任务一起使用吗:
“已经有一个打开的 DataReader 与此命令关联,必须先关闭。”
我的代码示例
private async void Form_Load(object sender, EventArgs e){
var sql1 = "select * from Tab1";
var sql2 = "select * from Tab2";
var sql3 = "select * from Tab3";
await Task.Factory.StartNew(() => FillComboBoxWithData(this.cbo1, sql1));
await Task.Factory.StartNew(() => FillComboBoxWithData(this.cbo2, sql2));
await Task.Factory.StartNew(() => FillComboBoxWithData(this.cbo3, sql3));
}
public static async Task FillComboBoxWithData(ComboBox comboBox, string sql{
try
{
var data = await Task.Factory.StartNew(() => SqlConn.Query<IdName>(sql));
var d1 = data.ToNonNullList();
comboBox.DataSource = d1;
comboBox.DisplayMember = "Name";
comboBox.ValueMember = "Id";
comboBox.SelectedItem = null;
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
谢谢。
【问题讨论】:
-
我猜你还在共享同一个 SQL 连接?您是否尝试过产生不同的连接? How do I handle Database Connections with Dapper in .NET?
-
感谢@Balah 提供的信息。我会试试的。
标签: c# sql-server c#-4.0 sql-server-2000 dapper