1.建立非同步執行開始
SqlConnectionStringBuilder consetting = new SqlConnectionStringBuilder();
consetting.ConnectionString = ConfigurationManager.ConnectionStrings["Con"].ConnectionString;
SqlConnection con = new SqlConnection(consetting.ConnectionString);
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "select @@Version";
cmd.BeginExecuteReader(new AsyncCallback(AsyncExecute), cmd, CommandBehavior.CloseConnection);
2.非同步執行的方法
public void AsyncExecute(IAsyncResult ar)
{
SqlCommand cmd = (SqlCommand)ar.AsyncState;
using(cmd.Connection)
{
using(cmd)
{
SqlDataReader dr = cmd.EndExecuteReader(ar);
string str=string.Empty;
if (dr.Read())
{
str=dr[0].ToString();
}
label1.BeginInvoke(new DelegateSetlblText(SetText), str);
}
}
}
3.給顯示結果的委託
delegate void DelegateSetlblText(string str);
public void SetText(string txt)
{
label1.Text = txt;
}