首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询必须声明Scalar变量

SQL查询必须声明Scalar变量
EN

Stack Overflow用户
提问于 2019-06-11 07:04:30
回答 1查看 739关注 0票数 1

我有一个类文件,其中声明我的查询的readonly string在方法中使用。我遇到了错误

必须声明标量变量"@DBID“

我能知道我是否错误地声明了我的变量吗?

下面是代码片段:

类文件:

代码语言:javascript
复制
private static readonly string QUERY_GETMATCHEDRECORD = "SELECT [Title], [ItemLink], [RecordDocID] FROM [ERMS].[dbo].[Records] WHERE [ID] = @DBID AND [V1RecordID] = @recID AND [V1RecordDocID] = @recDocID";
代码语言:javascript
复制
public DataTable GetMatchedRecord(string DBID, string recID, string recDocID)
{
    string Method = System.Reflection.MethodBase.GetCurrentMethod().Name;
    DataTable dt = new DataTable();
    try
    {
        using (DB db = new DB(_datasource, _initialCatalog))
        {
            db.OpenConnection();
            using (SqlCommand command = new SqlCommand())
            {
                string commandText = QUERY_GETMATCHEDRECORD .FormatWith(DBID,recID,recDocID);
                _log.LogDebug(Method, "Command|{0}".FormatWith(commandText));
                command.CommandText = commandText;
                dt = db.ExecuteDataTable(command);
            }
            db.CloseConnection();
        }
    }
    catch (Exception ex)
    {
        _log.LogError(Method, "Error while retrieving matching records |{0}".FormatWith(ex.Message));
        _log.LogError(ex);
    }
    return dt;
}

程序.cs文件:

代码语言:javascript
复制
MatchedRecords = oDB.GetMatchedRecord(DBID, RecID, RecDocID);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-11 07:17:24

只有在将参数添加到命令参数-集合中时,才能使用“@”-非标记变量。

尝试以下几点:

代码语言:javascript
复制
    using (DB db = new DB(_datasource, _initialCatalog))
    {
        db.OpenConnection();
        using (SqlCommand command = new SqlCommand())
        {
            command.CommandText = QUERY_GETMATCHEDRECORD;
            command.Parameters.AddWithValue("@DBID", DBID);
            command.Parameters.AddWithValue("@recID", recID);
            command.Parameters.AddWithValue("@recDocID",recDocID);
            dt = db.ExecuteDataTable(command);
        }
        db.CloseConnection();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56538243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档