我在C#中有一个方法:
public DataSet OpenSqlQuery(string SqlQuery)
{
con = new SqlConnection(connection_string);
con.Open();
var sqlc = new SqlCommand(SqlQuery, con);
da = new SqlDataAdapter(sqlc);
var ds = new DataSet();
da.Fill(ds);
con.Close();
return ds;
}
Run Code Online (Sandbox Code Playgroud)
现在,我想将其作为异步方法,以便可以通过调用它await。所以我将其更改为:
public async Task<DataSet> OpenSqlQuery(string SqlQuery)
{
con = new SqlConnection(connection_string);
con.Open();
var sqlc = new SqlCommand(SqlQuery, con);
da = new SqlDataAdapter(sqlc);
var ds = new DataSet();
await da.Fill(ds);
con.Close();
return ds;
}
Run Code Online (Sandbox Code Playgroud)
我设置await之前da.Fill(ds)是因为在这一行,程序等待服务器。但是该函数显示此错误:
'int'不包含'GetAwaiter'的定义,也找不到找不到接受'int'类型的第一个参数的扩展方法'GetAwaiter'(您是否缺少using指令或程序集引用?)
如何使该方法异步?
PS:主要目标是按以下方式调用此方法:
Dataset ds = await objConnect.OpenSqlQuery(query);
Run Code Online (Sandbox Code Playgroud)
PS:这个问题与可能重复的问题之间的区别是,这篇文章是关于将现有的同步方法转换为异步的,而另一篇是关于异步方法的。
| 归档时间: |
|
| 查看次数: |
1788 次 |
| 最近记录: |