我認為這種方法後面肯定有改進的地方,但是目前位置我不知道 ,希望各位給于指教
using system;
using system.collections.generic;
using system.text;
using system.data.sqlclient;
using system.data;
namespace operatordb
{
public class asyncselectdata
{
/// <summary>
/// 建立異步執行資料查詢
/// </summary>
/// <param name="dbconnect">取得連結</param>
/// <param name="asyncdataadapter">取得配置器</param>
public asyncselectdata(sqlconnection dbconnect, sqldataadapter asyncdataadapter)
{
sconnect = dbconnect;
sdataadapter = asyncdataadapter;
}
private sqlconnection sconnect;
private sqldataadapter sdataadapter;
private datatable retdatatable;
private void selectdata_()
datatable dt=new datatable();
#region 執行
if (sconnect != null)
{
sconnect.open();
if (sdataadapter != null)
{
if (dt != null)
{
try
{
sdataadapter.fill(retdatatable);
}
catch (exception ex)
system.windows.forms.messagebox.show(ex.message);
}
}
}
#endregion
;
public void selectdata(datatable dt)
retdatatable = dt ;
system.threading.thread t = new system.threading.thread(selectdata_);
t.start();
do
system.threading.thread.sleep(0);
system.windows.forms.application.doevents();
while (t.threadstate== system.threading.threadstate.running );
}
}