如何将多行从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();
此代码适用于单行,但我需要存储多行,请帮助我。
先谢谢。
答案 0 :(得分: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