DeleteCommand批量删除数据库数据

本文介绍如何使用DeleteCommand进行数据库批量删除操作,通过设置DeleteCommand及其参数,并结合具体代码实例展示了如何实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面讲述了怎么用


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!可以删除数据了,试一下吧 --_--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值