C#DataGirdViewダイナミックリフレッシュ

MySql.Data.MySqlClientを使用しました。
システムを使用しました。
System.Dataを使用しました。
System.Threadingを使用しました。
System.Windows.Formsを使用しました。

DataGirdView名前空間
{
パブリック部分クラスをForm1:Form1の
{
スレッドmyThread;
文字列DBConnationstring = "データベース接続";
たMySqlCommand CMD;
MySqlConnectionにはCON;
をMySqlDataAdapter MSDA;
公共int型の頻度= 0; //更新頻度
のpublic static BOOL isUse =偽; //更新を停止するかどうか
//状態; statusInfo = String.Emptyをパブリック静的文字列を
プライベートデリゲートボイドmyDelegate(データテーブルDT) ; // デリゲート定義
公共のForm1()
{
;のInitializeComponent()
+(trackBar1を:Label2.Text = "更新頻度である"と.VALUE / 1000).ToString()+ " S";
}

Form1_Loadプライベート(SENDERオブジェクト、EventArgsのE)無効
{
myThreadをスレッド新しい新=(startFillDv); //スレッドのインスタンス化
(myThread.Startを)。

}

空startFillDvプライベート()
{
(真の)しばらく
{
(isUse)のIF
{
StatusInfoは= "データが......リアルタイムで更新され、";
DataTableのDT =のgetData( "orderimpoertからSELECT *"); //独自のデータを書きます包装クラスはデータテーブルを返すことができ
、グリッド(DT)
のThread.sleep(周波数);
}

{
StatusInfo = "更新ストップ!";
}
}

}

プライベートボイドグリッド(データテーブルDT)
{
IF(this.InvokeRequired)
{
this.Invoke(新しいmyDelegate(グリッド)、新しいオブジェクト[] {} DT);
}

{
試みる
{
this.dataGridView1.DataSource = NULL;
this.dataGridView1.DataSource = DT;
DT = NULL;
statusInfo = "更新完成!";
}
キャッチ
{

}
}

}

プライベートボイドForm1_FormClosed(オブジェクト送信者、FormClosedEventArgs E)
{
IF(this.myThread.IsAlive)
{
this.myThread.Abort(); //结束线程
}
}

プライベートボイドtimer1_Tick(オブジェクト送信者、のEventArgs電子)
{
ます。Label1.Text = statusInfo。
周波数= trackBar1.Value。
IF(statusInfo.Trim()== "正在实时更新数据......")
{
pictureBox1.Visible = TRUE。
}

{
pictureBox1.Visible = FALSE;
}

}

プライベートボイドcheckBox1_CheckedChanged(オブジェクト送信者、のEventArgs e)の
{
IF(checkBox1.Checked)
{
isUse = TRUE。
}

{
isUse = FALSE;
}

}

プライベートボイドtrackBar1_Scroll(オブジェクト送信者、のEventArgs電子)
{
label2.Text = "更新频率为:" +(trackBar1.Value / 1000).ToString()+ "秒"。
}
パブリックデータテーブル函(文字列SQL)
{

試み
{
CONは=新しいMySqlConnectionに(DBConnationstring)。
con.Open();
CMD =新たMySqlCommand(SQL、CON);
cmd.CommandType = CommandType.Text。
DataTable dtを=新しいのDataTable();
MSDA =新をMySqlDataAdapter(CMD);
msda.Fill(DT)。
con.Close();
con.Dispose();
DTを返します。
}
キャッチ(例外例)
{
con.Close()。
con.Dispose();
ヌルを返します。
}
}
公共INT ExecSqlの(文字列SQL)
{
int型A = 0。
試す
{
コン=新しいMySqlConnectionに(DBConnationstring)。
con.Open();
CMD =新たMySqlCommand(SQL、CON);
= cmd.ExecuteNonQuery()。
con.Close();
con.Dispose();
返します。
}
キャッチ(例外)
{
con.Close()。
con.Dispose();
-1を返します。
}
}
}
}

 

 

 

-------------------------------------------------- ---------------------------------------

出典ます。https://files-cdn.cnblogs.com/files/Zingu/DataGirdView.rar

おすすめ

転載: www.cnblogs.com/Zingu/p/11447652.html