Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Server+;删除多个ID_C#_Sql - Fatal编程技术网

C# SQL Server+;删除多个ID

C# SQL Server+;删除多个ID,c#,sql,C#,Sql,我想找出删除ID复选框的好方法,如下所示,对于插入,我使用SqlBulkCopy,但我认为没有类似的类可以删除。如果选中复选框,我现在只能考虑删除1乘1,但不确定这是否是最好的方式,foreach行的最大计数约为15,是否可以包括1乘1删除的事务回滚?谢谢 protected void DeleteMsg_Click(object sender, EventArgs e) { UserBLL userBll = new UserBLL();

我想找出删除ID复选框的好方法,如下所示,对于插入,我使用SqlBulkCopy,但我认为没有类似的类可以删除。如果选中复选框,我现在只能考虑删除1乘1,但不确定这是否是最好的方式,foreach行的最大计数约为15,是否可以包括1乘1删除的事务回滚?谢谢

 protected void DeleteMsg_Click(object sender, EventArgs e)
        {
            UserBLL userBll = new UserBLL();

            foreach (GridViewRow row in uigvUserInbox.Rows)
            {
                CheckBox chkSelected = (CheckBox)row.FindControl("chkSelect");

                if (chkSelected.Checked)
                {
                    try
                    {
                      //  DataKey currentDataKey = uigvUserInbox.DataKeys[row.DataItemIndex];
                      //  userBll.DeleteMessage(currentDataKey.Value.ToString()); // SQL delete 
                    }
                    catch (Exception ex)
                    {
                        // clsLogging logError = new clsLogging();
                        // logError.WriteLog(ex);
                    }
                }
            }
        }

你可以使用In子句

从id所在的表中删除(id1、id2、id3)


这只需要一个查询。

将适当的方法添加到
UserBLL
类中,该类在SQL端使用
执行删除操作,其中yourMappedIDColumn位于其中(这里是以逗号分隔的数据键列表)

类UserBLL
{
内部void DeleteMessages(列表datakeystelete)
{
//从DataKeyStore中Id所在的tableName中删除
}
}
检索变量中的所有数据键并将其传递给上面的metod

protected void DeleteMsg_Click(object sender, EventArgs e)
{
    UserBLL userBll = new UserBLL();

    List<DataKey> dataKeysToDelete = new List<DataKey>();

    foreach (GridViewRow row in uigvUserInbox.Rows)
    {
        CheckBox chkSelected = (CheckBox)row.FindControl("chkSelect");

        if (chkSelected.Checked)
        {

            dataKeysToDelete.Add(uigvUserInbox.DataKeys[row.DataItemIndex]);
        }
    }
    try
    {
        userBll.DeleteMessages(dataKeysToDelete);
    }
    catch (Exception ex)
    {
        // clsLogging logError = new clsLogging();
        // logError.WriteLog(ex);
    }
}
protectedvoid DeleteMsg\u单击(对象发送方,事件参数e)
{
UserBLL UserBLL=新的UserBLL();
List datakeystedelete=新列表();
foreach(uigvUserInbox.Rows中的GridViewRow行)
{
复选框chkSelected=(复选框)row.FindControl(“chkSelect”);
如果(chkSelected.Checked)
{
添加(uigvUserInbox.DataKeys[row.DataItemIndex]);
}
}
尝试
{
userBll.DeleteMessages(datakeystelete);
}
捕获(例外情况除外)
{
//CLSLOGING logError=新的CLSLOGING();
//logError.WriteLog(ex);
}
}
protected void DeleteMsg_Click(object sender, EventArgs e)
{
    UserBLL userBll = new UserBLL();

    List<DataKey> dataKeysToDelete = new List<DataKey>();

    foreach (GridViewRow row in uigvUserInbox.Rows)
    {
        CheckBox chkSelected = (CheckBox)row.FindControl("chkSelect");

        if (chkSelected.Checked)
        {

            dataKeysToDelete.Add(uigvUserInbox.DataKeys[row.DataItemIndex]);
        }
    }
    try
    {
        userBll.DeleteMessages(dataKeysToDelete);
    }
    catch (Exception ex)
    {
        // clsLogging logError = new clsLogging();
        // logError.WriteLog(ex);
    }
}