Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以进行批量更新?_C#_Sql_Sqlite - Fatal编程技术网

C# 是否可以进行批量更新?

C# 是否可以进行批量更新?,c#,sql,sqlite,C#,Sql,Sqlite,是否可以批量更新?我做了一个构建插入,现在我想更新每个用户ID以增加计数 这是我的构建插入的一个示例 void updateMediaForSubscribers(long userId, long mediaId, Media_Base.Catagory cat, DateTime currentDate) { command.CommandText = "INSERT INTO user_media_subscription (recipientId, mediaId

是否可以批量更新?我做了一个构建插入,现在我想更新每个用户ID以增加计数

这是我的构建插入的一个示例

void updateMediaForSubscribers(long userId, long mediaId, Media_Base.Catagory cat, DateTime currentDate)
{
    command.CommandText =
        "INSERT INTO user_media_subscription (recipientId, mediaId, catagory) " +
        "SELECT watcher, @mediaId, @category " +
        "FROM user_watch WHERE watched=@watched;";
    command.Parameters.Add("@mediaId", DbType.Int64).Value = mediaId;
    command.Parameters.Add("@category", DbType.Int64).Value = cat;
    command.Parameters.Add("@watched", DbType.Int64).Value = userId;
    command.ExecuteNonQuery();

    //now I want to increase but this syntax is wrong
    //currently near "LEFT": syntax error
    //this is made up and shouldn't work.
    command.CommandText =
        "UPDATE user_data SET mediaMsgCount=mediaMsgCount+1 " +
        "LEFT JOIN user_watch AS w ON w.watcher=user_data.userId " +
        "WHERE w.watched=@watched;";
    command.Parameters.Add("@watched", DbType.Int64).Value = userId;
    command.ExecuteNonQuery();
}
您需要使用“更新…与”

看一看

试试下面的SQL:

UPDATE user_data 
   SET mediaMsgCount = mediaMsgCount+1 
  FROM user_data 
  LEFT JOIN user_watch AS w ON w.watcher=user_data.userId 
 WHERE w.watched=@watched

嗯,我已经对它进行了调整,但我没有SQL server本地测试它-现在下载它,这样我就可以确保它在一点时间内工作:-)我认为这段代码的问题是,你不能在UPDATE子句中使用别名。
UPDATE user_data 
   SET mediaMsgCount = mediaMsgCount+1 
  FROM user_data 
  LEFT JOIN user_watch AS w ON w.watcher=user_data.userId 
 WHERE w.watched=@watched