Asp.Net SQL更新语句

mur*_*983 3 c# sql-server asp.net webforms

我的页面上有一个Asp.net应用程序,用户请求删除用户。然后,这将填充我的“Admin_TaskList”数据库。

然后,管理员进入站点的安全区域并输入用户名并单击按钮。确认后,该用户将从我的“用户”数据库中删除(已经可以正常工作),但我希望我的“Admin_TaskList”数据库“状态”列从“待办事项”更改为“已完成”。

令我难过的是,我的删除位正在工作,但我正在努力更新我的其他表。

我尝试过的代码片段

conn.Open();
SqlCommand cmd2 = new SqlCommand("UPDATE FROM Admin_TaskList SET Status = 'Complete' WHERE Description = 'Remove User' AND Name = @Name", conn);
cmd2.Parameters.AddWithValue("@Name", txtRemoveUser.Text);
SqlDataReader rd2 = cmd2.ExecuteReader();
conn.Close();
Run Code Online (Sandbox Code Playgroud)

完整代码

public void btnRemoveConfirmYes_Click(object sender, EventArgs e)
        {
            string connection = ConfigurationManager.ConnectionStrings["PaydayLunchConnectionString1"].ConnectionString;
            SqlConnection conn = new SqlConnection(connection);

            conn.Open();
            SqlCommand cmd1 = new SqlCommand("DELETE FROM Users WHERE Name = @Name", conn);
            cmd1.Parameters.AddWithValue("@Name", txtRemoveUser.Text);
            SqlDataReader rd1 = cmd1.ExecuteReader();
            conn.Close();

            conn.Open();
            SqlCommand cmd2 = new SqlCommand("UPDATE FROM Admin_TaskList SET Status = 'Complete' WHERE Description = 'Remove User' AND Name = @Name", conn);
            cmd2.Parameters.AddWithValue("@Name", txtRemoveUser.Text);
            SqlDataReader rd2 = cmd2.ExecuteReader();
            conn.Close();

            txtRemoveUser.Text = "";
            Response.Redirect("/AdminSide/TaskList.aspx");
        }
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 5

不使用 aSqlDataReader来更新值,而是使用SqlCommand.ExecuteNonQuery

int updated = cmd2.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

请记住,您需要使用ExecuteNonQueryon 命令来修改数据,例如Delete,InsertUpdate

微软软件定义网络:

您可以使用 ExecuteNonQuery 执行目录操作(例如,查询数据库的结构或创建表等数据库对象),或者通过执行 UPDATE、INSERT 或 DELETE 语句来更改数据库中的数据,而无需使用 DataSet。

完整方法:

int deleted, updated;
string connection = ConfigurationManager.ConnectionStrings["PaydayLunchConnectionString1"].ConnectionString;

using (var conn = new SqlConnection(connection))
{
    conn.Open();
    string delSql = "DELETE FROM Users WHERE Name = @Name";
    using (var cmd = new SqlCommand(delSql, conn))
    {
        cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = txtRemoveUser.Text;
        deleted = cmd.ExecuteNonQuery();
    }

    string updSql = @"UPDATE Admin_TaskList 
                      SET Status = 'Complete' 
                      WHERE Description = 'Remove User' 
                      AND Name = @Name";
    using (var cmd = new SqlCommand(updSql, conn))
    {
        cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = txtRemoveUser.Text;
        updated = cmd.ExecuteNonQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)