首页 > 解决方案 > 时间:2019-05-10 标签:c#databasesqlinnerjoin

问题描述

嗨,我想将我的 ActivityClub 表与 Clubs 表进行内部连接,以便可以将其更新为 2 个表。但到目前为止,我的代码不起作用。我正在使用方法类和 SQL 数据库。这是我得到 System.Data.SqlClient.SqlException 的错误:'关键字'INNER'附近的语法不正确。'

 public int updateactivity(string clubname, string clubdesc, string activity, string achv)
    {
        int status = 0;
        string updateSQL = "UPDATE ActivityClub SET club_desc=@desc, activity=@act, achievement=@acv INNER JOIN Clubs AS C1 ON C1.club_desc = Activity.club_desc WHERE club_name=@club";
        Connect();
        SqlCommand cmd = new SqlCommand(updateSQL, conn);
        
        cmd.Parameters.AddWithValue("@club", clubname);
        cmd.Parameters.AddWithValue("@desc", clubdesc);
        cmd.Parameters.AddWithValue("@act", activity);
        cmd.Parameters.AddWithValue("@acv", achv);
        status = cmd.ExecuteNonQuery();
        return status;
    }

标签: c#sqldatabase

解决方案


您使用的语法不正确。应该是这样的。我建议您编写一个存储过程并在 SP 中使用查询并从 C# 代码中调用它。

UPDATE 
    t1
SET 
    t1.c1 = t2.c2,
    t1.c2 = expression,
    ...   
FROM 
    t1
    [INNER | LEFT] JOIN t2 ON join_predicate
WHERE 
    where_predicate;

参考:https ://www.sqlservertutorial.net/sql-server-basics/sql-server-update-join/


推荐阅读