DataRow[] dr = d1.Select("过滤字符串"); for(int i = 0 ;i<dr.Length;i++) { //update db }
private void SetTableByDataFilter() { DataView ViewRecords = new DataView( _dtFillTable); bool flag = false; try { // Build the RowFilter statement according to the user restriction foreach (DataRow FilterRow in TableFilterData.Rows) { if (FilterRow["Operation"].ToString() != string.Empty && FilterRow["ColumnData"].ToString() != string.Empty) { // Add the "AND" operator only from the second filter condition // The RowFilter get statement which simallar to the Where condition in sql query // For example "GroupID = '6' AND GroupName LIKE 'A%' if (ViewRecords.RowFilter == string.Empty) { ViewRecords.RowFilter = FilterRow["ColumnName"].ToString() + " " + FilterRow["Operation"].ToString() + " '" + FilterRow["ColumnData"].ToString()+"'"; } else { ViewRecords.RowFilter += " AND " + FilterRow["ColumnName"].ToString()+" " + FilterRow["Operation"].ToString() +" '"+ FilterRow["ColumnData"].ToString()+"'"; } flag = true; } } if (flag) { ViewRecords.Table.AcceptChanges(); DataTable dtTemp = ViewRecords.Table.Copy(); dataGrid1.DataSource = dtTemp; } else { iCurrentPage = 0; fnDownCyc(); } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
private void SetTableByDataFilter() { DataView ViewRecords = new DataView( _dtFillTable); bool flag = false; try { foreach (DataRow FilterRow in TableFilterData.Rows) { if (FilterRow["Operation"].ToString() != string.Empty && FilterRow["ColumnData"].ToString() != string.Empty) { // Add the "AND" operator only from the second filter condition // The RowFilter get statement which simallar to the Where condition in sql query // For example "GroupID = '6' AND GroupName LIKE 'A%' if (ViewRecords.RowFilter == string.Empty) { ViewRecords.RowFilter = FilterRow["ColumnName"].ToString() + " " + FilterRow["Operation"].ToString() + " '" + FilterRow["ColumnData"].ToString()+"'"; } else { ViewRecords.RowFilter += " AND " + FilterRow["ColumnName"].ToString()+" " + FilterRow["Operation"].ToString() +" '"+ FilterRow["ColumnData"].ToString()+"'"; } flag = true; } } if (flag) { ViewRecords.Table.AcceptChanges(); DataTable dtTemp = ViewRecords.Table.Copy(); dataGrid1.DataSource = dtTemp; } else { iCurrentPage = 0; fnDownCyc(); } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
你可以把DataView当前的数据抽出来,如下: DataRow[] drArray = yourDataView.Table.Select( yourDataView.RowFilter, yourDataView.Sort, yourDataView.RowStateFilter ); foreach( DataRow dr in drArray ) { //Update data base using "dr" }
//......
DataView dv1 = dt1.DefaultView;
dv1.RowFilter = "过滤字符串";
dv1.Table.AcceptChanges(); DataTable dt2 = dv1.Table.Copy();
foreach(DataRow dr in dt2.Rows)
{
//逐条数据插入数据库
} //如果你是用dataAdapter.Update方法去写数据库,那么就要像下面这样写
dt2 = dv1.Table.Clone();
foreach(DataRow dr in dv1.Table.Rows)
{
dt2.Rows.Add(dr.ItemArray);
}
for(int i = 0 ;i<dr.Length;i++)
{
//update db
}
{
DataView ViewRecords = new DataView( _dtFillTable); bool flag = false; try
{
// Build the RowFilter statement according to the user restriction
foreach (DataRow FilterRow in TableFilterData.Rows)
{
if (FilterRow["Operation"].ToString() != string.Empty && FilterRow["ColumnData"].ToString() != string.Empty)
{
// Add the "AND" operator only from the second filter condition
// The RowFilter get statement which simallar to the Where condition in sql query
// For example "GroupID = '6' AND GroupName LIKE 'A%'
if (ViewRecords.RowFilter == string.Empty)
{
ViewRecords.RowFilter = FilterRow["ColumnName"].ToString() + " " + FilterRow["Operation"].ToString() + " '" + FilterRow["ColumnData"].ToString()+"'"; }
else
{
ViewRecords.RowFilter += " AND " + FilterRow["ColumnName"].ToString()+" " + FilterRow["Operation"].ToString() +" '"+ FilterRow["ColumnData"].ToString()+"'"; } flag = true;
}
}
if (flag)
{
ViewRecords.Table.AcceptChanges(); DataTable dtTemp = ViewRecords.Table.Copy();
dataGrid1.DataSource = dtTemp;
}
else
{
iCurrentPage = 0; fnDownCyc();
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
{
DataView ViewRecords = new DataView( _dtFillTable); bool flag = false; try
{ foreach (DataRow FilterRow in TableFilterData.Rows)
{
if (FilterRow["Operation"].ToString() != string.Empty && FilterRow["ColumnData"].ToString() != string.Empty)
{
// Add the "AND" operator only from the second filter condition
// The RowFilter get statement which simallar to the Where condition in sql query
// For example "GroupID = '6' AND GroupName LIKE 'A%'
if (ViewRecords.RowFilter == string.Empty)
{
ViewRecords.RowFilter = FilterRow["ColumnName"].ToString() + " " + FilterRow["Operation"].ToString() + " '" + FilterRow["ColumnData"].ToString()+"'"; }
else
{
ViewRecords.RowFilter += " AND " + FilterRow["ColumnName"].ToString()+" " + FilterRow["Operation"].ToString() +" '"+ FilterRow["ColumnData"].ToString()+"'"; } flag = true;
}
}
if (flag)
{
ViewRecords.Table.AcceptChanges(); DataTable dtTemp = ViewRecords.Table.Copy();
dataGrid1.DataSource = dtTemp;
}
else
{
iCurrentPage = 0; fnDownCyc();
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
DataRow[] drArray = yourDataView.Table.Select( yourDataView.RowFilter,
yourDataView.Sort,
yourDataView.RowStateFilter );
foreach( DataRow dr in drArray )
{
//Update data base using "dr"
}