天天看點

我的異步查詢資料庫 的類

我認為這種方法後面肯定有改進的地方,但是目前位置我不知道 ,希望各位給于指教  

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 );

    }

}