2010-09-01 61 views
1

在我的表中,我有許多行數據。 一行有七列值。刪除表中的特定條目

是否可以從一行中刪除兩列的值並且休息五次而不作更改?

我可以用SQL刪除它嗎?

cmd.CommandText = @"DELETE ImageData," 
        + " ContentType, " 
        + " FROM Users " 
        + " WHERE UserName = @UserName"; 

    cmd.Parameters.Add(new SqlParameter("@UserName", username)); 
    cmd.Parameters.Add(new SqlParameter("@ImageData", ImageData)); 
    cmd.Parameters.Add(new SqlParameter("@ContentType", ContentType)); 

在我的代碼中,我不能像這樣刪除,是不是錯誤? 有誰知道如何刪除它們?

回答

2

我認爲這不是DELETE您需要,但UPDATE

  • DELETE總是刪除整行。
  • UPDATE允許您更改連續的單個列。

codefragment

@"UPDATE Users " 
    + "SET ContentType = NULL, " 
    + " ImageData = NULL " 
    + "WHERE Username = @UserName"; 
+0

greate !!!謝謝,那有效! – 2010-09-01 14:05:12

1

您需要爲此使用UPDATE聲明。 DELETE僅用於一次刪除整行。

你實際上不能「刪除」它們,就好像它是電子表格中的單元格一樣。假設列可以爲空,您可以將它們設置爲NULL,如下所示。

cmd.CommandText = @"UPDATE ImageData 
        SET ContentType = NULL, Users = NULL 
        WHERE UserName = @UserName"; 

      cmd.Parameters.Add(new SqlParameter("@UserName", username)); 
+0

你的意思是這樣: cmd.CommandText = @ 「用戶更新」 + 「SET的ContentType =」 + null +「,」+「ImageData =」+ null +「」 +「WHERE UserName = @UserName」; ??? – 2010-09-01 14:02:05

+0

它沒有工作:(也許語法是錯誤的 – 2010-09-01 14:02:29

+0

@Ragmis請參閱編輯C#版本。如果它不起作用,你需要提供更多的細節(它是否會給你一個錯誤消息 - 如果是的話?) – 2010-09-01 14:04:24

1

你可以更新該行:

UPDATE Users 
SET ImageData = NULL, ContentType = NULL 
WHERE UserName = @UserName