2010-09-01 138 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