0

如何将 GridView 中的多行存储到 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();

此代码适用于单行,但我需要存储多行,请帮助我。

提前致谢。

4

1 回答 1

1

要获取所有选定的行,请使用GridView GetSelectedRows方法。浏览文档以了解有关此功能的更多信息。

这是您可以遵循的方式。您可以从 xtragrid 中获取多个选定的行,如下所示。

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

这是一个示例,可让您使用复选框(网络样式)进行多项选择

参考资料:
如何通过未绑定的复选框列选择行
如何在网格控件中获取多个选定的
行 从 XtraGrid 中通过多个选择和分组从选定的行中获取值?

编辑:通过评论

要遍历 gridview 行,您必须查看下面的主题,这会清除您需要的所有内容..
遍历行
定位行

示例代码片段

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(); }

参考:
迭代网格中的所有行(不是数据源)并仅检索可见行的值
Iterate through Grid rows

于 2013-10-30T14:12:25.563 回答