您的位置:首页 > 数据库

DeleteCommand批量删除数据库数据

2015-11-24 09:03 369 查看
前面讲述了怎么用

InsertCommand、UpdateCommand批量插入和更新数据库数据,今天讲一下怎么用DeleteCommand批量删除数据库数据。

DeleteCommand操作要明确有dss.Tables[0].Rows[j].Delete()这个动作,才能成功删除数据。

延续前面的InsertCommand、UpdateCommand,直接上代码:(说明,我已经把从数据库取出的数据记录挑出了要删除的记录)

string day = XMLConfig.GetValue("appSettings", "add", "SyncDay", "value");

string dayTemp = (int.Parse(day) - 1).ToString();

DataSet dss = new DataSet();

adapter = new SqlDataAdapter(cmd);

commandBulider = new SqlCommandBuilder(adapter);

commandBulider.ConflictOption = ConflictOption.OverwriteChanges;

adapter.SelectCommand = new SqlCommand("select * from Shift where StartTime>dateadd(day,-" + dayTemp + ",CONVERT(varchar(100), GETDATE(), 23))", conn);//获得框架

adapter.DeleteCommand = new SqlCommand("delete from Shift where RTRIM(ShiftCode)=RTRIM(@ShiftCode)", conn);

adapter.DeleteCommand.Parameters.Add("@ShiftCode", SqlDbType.Char, 10, "ShiftCode");

adapter.DeleteCommand.Parameters.Add("@StartTime", SqlDbType.DateTime, 8, "StartTime");

adapter.DeleteCommand.Parameters.Add("@EndTime", SqlDbType.DateTime, 8, "EndTime");

adapter.DeleteCommand.Parameters.Add("@StartPlanDownTime", SqlDbType.DateTime, 8, "StartPlanDownTime");

adapter.DeleteCommand.Parameters.Add("@EndPlanDownTime", SqlDbType.DateTime, 8, "EndPlanDownTime");

adapter.DeleteCommand.Parameters.Add("@OvertimeBegin", SqlDbType.DateTime, 8, "OvertimeBegin");

adapter.DeleteCommand.Parameters.Add("@OvertimeEnd", SqlDbType.DateTime, 8, "OvertimeEnd");

adapter.DeleteCommand.Parameters.Add("@Overtime", SqlDbType.Decimal, 5, "Overtime");

adapter.DeleteCommand.Parameters.Add("@IsClosed", SqlDbType.Bit, 1, "IsClosed");

adapter.DeleteCommand.UpdatedRowSource = UpdateRowSource.None;

adapter.UpdateBatchSize = 0;

adapter.Fill(dss);

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

{

for (int j = dss.Tables[0].Rows.Count - 1; j >= 0; j--)

{

if (ds.Tables[0].Rows[i].ItemArray.GetValue(1).ToString().Trim() == dss.Tables[0].Rows[j].ItemArray.GetValue(1).ToString().Trim())

{

dss.Tables[0].Rows[j].Delete();

break;

}

}

}

try

{

int nn = adapter.Update(dss.Tables[0]);//返回影响的行数

}

catch (Exception e)

{

。。。//处理自己的异常操作

return false;

}

finally

{

dss.Dispose();

adapter.Dispose();

commandBulider.Dispose();

}

OK!可以删除数据了,试一下吧 --_--
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: