如何设置DataSet的行状态
keety 2008-04-08 11:10:16 请教一个问题,每周客户都要传一些订单有关的资料给我们,但这份资料有些是新增加的,有的是上一份就有的,只是其中一些内容修改了.以前我们的系统是PowerBuilder开发的,将Excel数据导入到DataWindow中后,然后逐行判断主Key是否存在于数据库中,存在则将行状态设为修改状态,不存在则为新增状态,然后Datawindow.update()就可以了.现在用C#开发系统后,用以下代码只能插入,对于已存在的就没办法处理了,本来逐行读取再判断然后决定是Insert或Update也可以达到目的,但我很好奇, PowerBuilder的处理方式为何在C#中不能处理,好象RowState是不能动态修改的. 谢谢!
string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFilePath + ";Extended Properties=Excel 8.0";
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
myCommand.AcceptChangesDuringFill = false;
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "cdrbaph")
SqlConnection Conn = new SqlConnection(DbConfiguration.DbConnectionString);
Conn.Open();
try
{
SqlDataAdapter DaAdapter = new SqlDataAdapter(sSql, Conn);
SqlCommandBuilder Comm = new SqlCommandBuilder(DaAdapter);
DaAdapter.UpdateCommand = Comm.GetUpdateCommand();
DaAdapter.InsertCommand = Comm.GetInsertCommand();
DaAdapter.DeleteCommand = Comm.GetDeleteCommand();
DaAdapter.Update(myDataSet, "cdrbaph");
}