我有兩個表: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