2013-10-23 62 views
0

我想連接一個dataGridView到一個數據表,但我不能讓它工作。這裏是我的代碼:Datagridview到數據表

public void ToDatabase(string Database, string Table, DataTable Datatable) 
{ 
    string query = "SELECT * FROM `" + Database + "`.`" + Table + "`;"; 
    if (this.OpenConnection() == true) 
    { 
     MySqlCommand cmd = new MySqlCommand(query, connection); 
     cmd.ExecuteNonQuery(); 
     MySqlDataAdapter adapter = new MySqlDataAdapter(cmd); 
     adapter.Update(Datatable); 
     this.CloseConnection(); 
    } 
} 

private void buttonUpdateData_Click(object sender, EventArgs e) 
{ 
    MySqlBinding mb = new MySqlBinding(); 
    DataTable dt = new DataTable(); 
    dt = dataGridViewSql.DataSource as DataTable; 
    mb.ToDatabase("SystemData", "SystemClientData", dt); 
} 

但我只得到NULL。

我已經在這裏和其他網站上看過很多主題,看起來我應該使用viewstate函數來捕獲數據網格中的數據。但我真的不明白如何,因此我無法實現它的工作。

+2

既然你提到的'Viewstate',是它的一個ASP.NET' GridView'而不是WinForms DataGridView?你在哪裏嘗試訪問數據源,在回發? –

+0

你可以發佈代碼嗎? – qJake

+0

檢查此:http://stackoverflow.com/questions/5099673/c-sharp-binding-datagridview-to-datatable-in-form-vs-control – 2013-10-23 21:20:15

回答

0

我知道回答這個問題可能最終無能爲力。您很有可能不瞭解DataAdapter如何在ADO.NET中工作。我只是嘗試發佈此代碼爲您測試,如果它不工作,這意味着你的代碼是嚴重錯誤:

public void ToDatabase(string Database, string Table, DataTable Datatable) { 
    string query = "SELECT * FROM `" + Database + "`.`" + Table + "`;"; 
    if (this.OpenConnection()) { 
    MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection); 
    MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter); 
    adapter.Update(Datatable); 
    this.CloseConnection(); 
    } 
}