//染整分缸进仓
if (ds.HasChanges(DataRowState.Deleted))//删除的行
{
drDelete = ds.Tables[0].Select(null, null, DataViewRowState.Deleted);
}
foreach (DataRow dr in drDelete)
{
rfglDDL.DTData[j] = new ServiceRFGL.DTStru();
rfglDDL.DTData[j].Line = int.Parse(pageCommon.StringIsNull(dr["Line", DataRowVersion.Original]));//行号
rfglDDL.DTData[j].TRAN_NO = txtRef_NO.Text.Trim();
rfglDDL.DTData[j].H_Line = int.Parse(pageCommon.StringIsNull(dr["H_Line", DataRowVersion.Original]));
rfglDDL.DTData[j].BZ_State = 3; //辅助标志1:新增2:修改3 删除 (表:无该字段XSC 2008-02-19)
j++;
}
网上找的说明
(1)DataSet中的数据如果发生了更改,同时有添加、修改、删除的数据,是否能够一次性的更新到数据库呢呢?
我只会一行一行的更新,而且首先检查该行状态是"Added"、"Modified"、"Deleted",然后调用不同的存储过程,并且将各列的数据作为参数传递给存储过程。感觉累死了,最主要的是感觉这样做性能好象不会好(DataSet有其它更新方法吗?)。
(2)如果DataSet的数据已经被Deleted,不能用DataRow获取该行数据了,那怎么知道要删除哪一行呢?
以下代码示例显示了表中所有已删除行的值。已删除的行没有 Current 行版本,因此在访问列值时必须传递
DataRowVersion.Original。
DataTable catTable = catDS.Tables["Categories"];
DataRow[] delRows = catTable.Select(null, null, DataViewRowState.Deleted);
Console.WriteLine("Deleted rows:/n");
foreach (DataColumn catCol in catTable.Columns)
Console.Write(catCol.ColumnName + "/t");
Console.WriteLine();
foreach (DataRow delRow in delRows)
{
foreach (DataColumn catCol in catTable.Columns)
Console.Write(delRow[catCol, DataRowVersion.Original] + "/t");
Console.WriteLine();
}
if (ds.HasChanges(DataRowState.Deleted))//删除的行
{
drDelete = ds.Tables[0].Select(null, null, DataViewRowState.Deleted);
}
foreach (DataRow dr in drDelete)
{
rfglDDL.DTData[j] = new ServiceRFGL.DTStru();
rfglDDL.DTData[j].Line = int.Parse(pageCommon.StringIsNull(dr["Line", DataRowVersion.Original]));//行号
rfglDDL.DTData[j].TRAN_NO = txtRef_NO.Text.Trim();
rfglDDL.DTData[j].H_Line = int.Parse(pageCommon.StringIsNull(dr["H_Line", DataRowVersion.Original]));
rfglDDL.DTData[j].BZ_State = 3; //辅助标志1:新增2:修改3 删除 (表:无该字段XSC 2008-02-19)
j++;
}
网上找的说明
(1)DataSet中的数据如果发生了更改,同时有添加、修改、删除的数据,是否能够一次性的更新到数据库呢呢?
我只会一行一行的更新,而且首先检查该行状态是"Added"、"Modified"、"Deleted",然后调用不同的存储过程,并且将各列的数据作为参数传递给存储过程。感觉累死了,最主要的是感觉这样做性能好象不会好(DataSet有其它更新方法吗?)。
(2)如果DataSet的数据已经被Deleted,不能用DataRow获取该行数据了,那怎么知道要删除哪一行呢?
以下代码示例显示了表中所有已删除行的值。已删除的行没有 Current 行版本,因此在访问列值时必须传递
DataRowVersion.Original。
DataTable catTable = catDS.Tables["Categories"];
DataRow[] delRows = catTable.Select(null, null, DataViewRowState.Deleted);
Console.WriteLine("Deleted rows:/n");
foreach (DataColumn catCol in catTable.Columns)
Console.Write(catCol.ColumnName + "/t");
Console.WriteLine();
foreach (DataRow delRow in delRows)
{
foreach (DataColumn catCol in catTable.Columns)
Console.Write(delRow[catCol, DataRowVersion.Original] + "/t");
Console.WriteLine();
}