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)
不使用 aSqlDataReader来更新值,而是使用SqlCommand.ExecuteNonQuery:
int updated = cmd2.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
请记住,您需要使用ExecuteNonQueryon 命令来修改数据,例如Delete,Insert或Update。
微软软件定义网络:
您可以使用 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)