c# - 时间: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;
}
解决方案
您使用的语法不正确。应该是这样的。我建议您编写一个存储过程并在 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/
推荐阅读
- python - 仅将非 None 值作为参数传递给函数
- python - 测量多行的协方差
- javascript - ProtractorJS Specs Not Run,浏览器获取数据;只要
- java - JRE 如何为具有非有效最终局部变量的 lambda 主体创建并发问题?
- r - 使用 ggplot2 的 5 维堆叠条形图
- java - Android:如何使用 **Volley** 在导航视图中隐藏登录和注册选项并启用注销选项
- java - Java中的字符串列表
- python - Python S2 库中的多边形支持
- java - Eclipse 大小的 Maven 插件
- asp.net-mvc - ASP.NET MVC - 自定义身份验证不起作用