public class QueryHelper
{
private delegate void DataGridViewHandler(DataTable dt);
public DataGridView dataGridView { get; set; }
public void GetData(string sql)
{
//得到链接,用你自己的链接串即可
IDbConnection con = DBConPool.GetDbProvider(false, DbType.SqlServer, DbName.MainDb);
SqlConnection conn = con as SqlConnection;
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
SqlCommand sqlCommand = new SqlCommand(sql, conn) { CommandTimeout = 0 };
//执行耗时查询,AsyncProcess:执行完后讲结果推送到AsyncProcess
sqlCommand.BeginExecuteReader(AsyncProcess, sqlCommand);
}
/// <summary>
/// 异步执行
/// </summary>
/// <param name="ar"></param>
private void AsyncProcess(IAsyncResult asyncResult)
{
SqlCommand sqlCommand = (SqlCommand)asyncResult.AsyncState;
using (sqlCommand.Connection)
{
using (sqlCommand)
{
SqlDataReader sdr = sqlCommand.EndExecuteReader(asyncResult);
DataTable dt = new DataTable("info");
dt.Load(sdr);
//dataGridView1绑定数据
dataGridView.BeginInvoke(
new DataGridViewHandler((dtResult) => dataGridView.DataSource = dtResult), dt);
}
}
}
}