2013-10-30 54 views
0

如何將多行從GridView存儲到Access數據庫。我有代碼存儲單聚焦行,但我需要存儲多行?如何完成我的任務?如何將多行從GridView Winform Devexpress存儲到Access數據庫?

這段代碼我用來存儲單一集中的一行單列

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:/Srihari/Samples.accdb"); 
      conn.Open(); 



      string s1 = (string)gridView1.GetFocusedRowCellValue("Item"); 
      string s2 = (string)gridView1.GetFocusedRowCellValue("Description"); 
      string s3 = (string)gridView1.GetFocusedRowCellValue("UoM"); 
      object quant = gridView1.GetFocusedRowCellValue("Quantity"); 
      object price = gridView1.GetFocusedRowCellValue("Price"); 
      object taxp = gridView1.GetFocusedRowCellValue("Tax in Percentage"); 
      object taxa = gridView1.GetFocusedRowCellValue("Tax in Amount"); 
      object total = gridView1.GetFocusedRowCellValue("Total"); 


      int a = Convert.ToInt32(quant); 
      int b = Convert.ToInt32(price); 
      int c = Convert.ToInt32(taxp); 
      int d = Convert.ToInt32(taxa); 
      int e = Convert.ToInt32(total); 


       OleDbCommand cmd = new OleDbCommand("insert into gridview(Item,Description,UoM,Quantity,Price,TaxinPercentage,TaxinAmount,Total) values ('" + s1 + "','" + s2 + "','" + s3 + "', " + a + " , " + b + " , " + c + " , " + d + " , " + e + ")", conn); 
       cmd.ExecuteNonQuery(); 
       MessageBox.Show("Inserted Successful","Information",MessageBoxButtons.OK,MessageBoxIcon.Information); 
       Close(); 

此代碼的工作,但我需要存儲多行,請幫助我。

在此先感謝。

回答

1

要獲取所有選定的行,請使用GridView GetSelectedRows方法。閱讀文檔以瞭解有關此功能的更多信息。

以下是您可以遵循的方式。您可以從xtragrid中獲取多個選定的行,如下所示。

int[] selRows = ((GridView)gridControl1.MainView).GetSelectedRows(); 
DataRowView selRow = (DataRowView)(((GridView)gridControl1.MainView).GetRow(selRows[0])); 
txtName.Text = selRow["name"].ToString(); 

這裏是讓你做Multiple selection using checkbox (web style)

引用的例子:
How to select rows via an unbound checkbox column
How to get multiple selected rows in Grid Control
Get values from selected rows from XtraGrid with multiple select and grouping?

編輯:按註釋

要通過你看下面的主題gridview的行,從而清除你,你所需要的一切遍歷..
Traversing Rows
Locating Rows

示例代碼片段

using DevExpress.XtraGrid.Views.Base; 

ColumnView View = gridControl1.MainView as ColumnView; 
View.BeginUpdate(); 
try { 
    int rowHandle = 0; 
    DevExpress.XtraGrid.Columns.GridColumn col = View.Columns["Category"]; 
    while(true) { 
     // locating the next row 
     rowHandle = View.LocateByValue(rowHandle, col, "SPORTS"); 
     // exiting the loop if no row is found 
     if (rowHandle == DevExpress.XtraGrid.GridControl.InvalidRowHandle) 
     break; 
     // perform specific operations on the row found here 
     // ... 
     rowHandle++; 
    } 
} finally { View.EndUpdate(); } 

參考:
Iterating over all rows in the grid (not the data source) and retrieving values only for the visible rows
Iterate through Grid rows

+0

嗨Niranjan,感謝您的回答,但我需要保存所有從GridView到訪問數據庫的數據未選擇行需要存儲所有行。 – Srihari

+1

檢查更新的答案.. –

相關問題