我的數據庫中有大量的行。當我試圖加載到datagridview的所有數據它卡住了。我想將數據加載到只與datetimepicker日期相關的datagridview。這是我當前的代碼按當前日期過濾顯示datagridview中的數據C#
private void showdatagrid()
{
string constring = string.Format("datasource='{0}';username=uwadminview;port=3306;password=*****************;Connect Timeout=20000;Command Timeout=28800", dbserverip.Text);
MySqlConnection conwaqDatabase = new MySqlConnection(constring);
MySqlCommand cmdwaqDatabase = new MySqlCommand(" select * from waq115.loans ; ", conwaqDatabase);
try
{
MySqlDataAdapter sda = new MySqlDataAdapter();
sda.SelectCommand = cmdwaqDatabase;
dbdataset = new DataTable();
sda.Fill(dbdataset);
BindingSource bsource = new BindingSource();
bsource.DataSource = dbdataset;
dataGridView1.DataSource = bsource;
sda.Update(dbdataset);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
conwaqDatabase.Close();
}
然後不久之後我把這個我再次使用了一個RowFilter事件這樣
private void filterdata()
{
DataView DV = new DataView(dbdataset);
DV.RowFilter = string.Format("Convert(submittimestamp, System.String) LIKE '%{0}%'", adminviewDTP.Text);
dataGridView1.DataSource = DV;
}
但這種方法的性能負載超過9000行就卡住時是非常糟糕每時每刻。我想直接查詢數據庫的方法只與今天有關
(用戶每天更新數據庫,他們每天插入超過500行) (應用程序仍在測試進度中) (我是使用MySQL數據庫)
可有人告訴我任何有效的方式在數據庫層,而不是中間層要做到這一點)
'Charith'爲什麼你覺得需要使用BindingSource只是好奇......當你需要做的就是將GridView的DataSource分配給數據集..也就是9000行實際上什麼都不是,應該加載非常快。 。你可以在數據庫端添加一個Where子句或過濾器嗎? – MethodMan 2014-10-20 15:48:53
先生,我沒有很好的C#知識。你能告訴我如何做到這一點。我使用教程視頻製作了這段代碼:( – 2014-10-20 15:56:53