2013-06-27 23 views
0

剛剛在最近的東西上工作需要幫助即時再次停留在這裏....即時檢索數據庫中使用數據網格的值,我想更新數據庫使用類似的數據網格,但不知何故我有麻煩,可以任何人指導我如何做到這一點.....我的意思是當查詢執行和選定的數據檢索,如果用戶想要更新的東西,他/她可以在數據網格中顯示值...在C#中使用Datagrid更新數據庫

if (textBox1.Text != ""|| textBox1.Text==null) 
     { 
      textBox3.Enabled = false; 
      dateTimePicker1.Enabled = false; 
      dateTimePicker2.Enabled = false; 
      String txt = textBox1.Text; 
      dataGridView1.DataSource = null; 
      dataGridView1.Rows.Clear(); 
      dataGridView1.Refresh(); 

      OleDbDataAdapter dAdapter = new OleDbDataAdapter("SELECT * FROM [BDetails] WHERE ([BranchCode] = '" + @txt + "')", connParam); 
      OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter); 


      dataTable = new DataTable(); 
      DataSet ds = new DataSet(); 

      dAdapter.Fill(dataTable); 

      if (dataTable.Rows.Count > 0) 
      { 
       for (int i = 0; i < dataTable.Rows.Count; i++) 
       { 
        dataGridView1.Rows.Add(dataTable.Rows[i][0], dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], dataTable.Rows[i][4], dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7], dataTable.Rows[i][8], dataTable.Rows[i][11], dataTable.Rows[i][12]); 

       } 

      }// end inner if 
      else 
      { 
       MessageBox.Show("No Record Found"); 
       textBox3.Enabled = true; 
       dateTimePicker1.Enabled = true; 
       dateTimePicker2.Enabled = true; 
      }// end inner else 


     }// end outer if 
     else 
     { 
      MessageBox.Show("Please Enter Branch Code"); 
      bookConn.Close(); 

     }// end outer else 

IM絕望的人幫我

私人無效button8_Click(對象發件人,EventArgs的) {0} {0} {0} ReadData(); // SaveData();

}// end function 

    void ReadData() 
    { 
     this.ds = new DataSet(); 
     // string connString = "CONNICTION STRING GOES HERE"; 
     dAdapter = new OleDbDataAdapter("select * from BDetails", connParam); 
     this.dAdapter.Fill(this.ds,"[BDetails]"); 
     this.ds.AcceptChanges(); 
     //set the table as the datasource for the grid in order to show that data in the grid 
     this.dataGridView1.DataSource = ds.DefaultViewManager; 
    }// end function 

    void SaveData() 
    { 
     DataSet changes = this.ds.GetChanges(); 
     if (changes != null) 
     { 
      //Data has changes. 
      //use update method in the adapter. it should update your datasource 
      int updatedRows = this.dAdapter.Update(changes); 
      this.ds.AcceptChanges(); 
     } 
    }// end function 

回答

2

好Abeer。有很多方法可以處理數據,而且很多時候開發人員偏好以這種或那種方式工作。從你的問題,我可以看出,使用ADO.NET可能是新的,所以我建議你閱讀一下.NET中的數據(DataTables,DataSets,DataGrids,DataAdapters,Data Binding等等)

我認爲(從我的短經驗)讀取和寫入數據的最簡單方法是使用DataAdapter將數據讀入數據集,然後將數據集設置爲gridview的數據源,其中用戶可以編輯。要回寫更改,只需使用適配器中的更新方法即可。 這裏是一個示例代碼

DataSet ds; 
OleDbDataAdapter dataAdapter; 
void ReadData() 
    { 
     this.ds = new DataSet(); 
     string connString = "CONNICTION STRING GOES HERE"; 
     this.dataAdapter = new OleDbDataAdapter("QUERY GOES HERE", connString); 
     this.dataAdapter.Fill(this.ds, "TABLE1"); 
     this.ds.AcceptChanges(); 
     //set the table as the datasource for the grid in order to show that data in the grid 
     this.dataGridView1.DataSource = ds.DefaultViewManager; 
    } 

    void SaveData() 
    { 
     DataSet changes = this.ds.GetChanges(); 
     if (changes != null) 
     { 
      //Data has changes. 
      //use update method in the adapter. it should update your datasource 
      int updatedRows = this.dataAdapter.Update(changes); 
      this.ds.AcceptChanges(); 
     } 
    } 

看到下面的,因爲它提供了關於使用DataGrid控件

http://www.codeproject.com/Articles/9986/Using-the-DataGrid-Control

以及有關DataTable的一些介紹一個較長的樣本,數據集和DataGrid中看到

http://www.codeproject.com/Articles/6179/A-Practical-Guide-to-NET-DataTables-DataSets-and-D

+0

thnks非常感謝幫助我很多 –

+0

我試過用我噸與我的代碼,但無法檢索到任何信息我的意思是值只是返回空信息.... @ Tha'er –

+0

你能澄清更多?你在談論哪個價值? @AbeerIslam –