我有两个表:Accounts
(其中包含用户拥有的帐户信息)和AccountUsers
,其中包含上述Accounts
表中的帐户的用户列表。如何从单个查询中的两个表中删除数据
如果我必须删除一个用户,那么我将不得不从两个表中删除它们,因为AccountUsers
将有一行该用户,其他可能有很多,因为单个用户可以有多个帐户。
我写了下面的代码,可以很好地工作,并从两个表中删除行,但是每当第二个表中有多行时,它们都无法删除它们,并且ExecuteNonQuery()
返回0,这意味着0行受到影响。
我想知道它是否可以在一行中完成。另外,如何为第二个表中的多行执行操作,因为我现有的代码只在有单行时才有效。
代码:
public static bool DeleteUser(int UserId)
{
if (ConnectDatabase())
{
sql_cmd = new SqlCommand();
sql_cmd.Connection = sql_con;
sql_cmd.Parameters.Add("@userId", SqlDbType.Int).Value = UserId;
sql_cmd.CommandText = "DELETE FROM AccountsUsers WHERE Id = @userId";
if (sql_cmd.ExecuteNonQuery() == 1)
{
sql_cmd = new SqlCommand();
sql_cmd.Connection = sql_con;
sql_cmd.Parameters.Add("@userId", SqlDbType.Int).Value = UserId;
sql_cmd.CommandText = "DELETE FROM Accounts WHERE userId = @userId";
if (sql_cmd.ExecuteNonQuery() == 1)
{
return true;
}
else
return false;
}
else
return false;
}
else
return false;
}
这是你告诉的错误。实际上它返回2当它删除两行等。我从来没有想到它,我想那里只有2个值 – 2011-05-22 01:24:51