【发布时间】:2021-08-27 13:01:36
【问题描述】:
我想使用 select 获取一个值,然后在同一查询的更新语句中使用 select 中的值。
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = connection;
cmd.CommandText = "Declare @appln_id int;set @appln_id=select APPLN_INST_ID from CP.USR_RQST where RQST_ID=@RI;" +
"Update CP.APPLN_INST set SCRN_SESS_DTA=@SSD where APPLN_INST_ID=@appln_id";
cmd.Parameters.Add("@RI", System.Data.SqlDbType.Int).Value = res.RequestDetails.AssetCollectionRequest.RequestId;
cmd.Parameters.Add("@SSD", System.Data.SqlDbType.NVarChar).Value = somevalue;
cmd.Parameters.Add("@appln_id", System.Data.SqlDbType.Int).Direction = ParameterDirection.Output;
connection.Open();
cmd.ExecuteNonQuery();
}
我在查询中遇到语法错误。
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near the keyword 'select'.
【问题讨论】:
-
这看起来应该作为存储过程来完成
-
是的,应该是。我只是想在 C# 代码中使用 SET 是不可能的吗?
-
AFAIK 没有。但你不需要。要么使用存储过程,要么执行两个单独的命令(将第一个的结果作为参数传递给第二个)
标签: c# mysql asp.net asp.net-core