必须声明一个标量变量@Code

时间:2013-08-09 05:38:28

标签: c#

为什么要求声明标量变量@Code

private DataSet SearchRecord ( string lQuery, string SwiftCode) 
    using ( pConnectionState = new SqlConnection(pConnectionString) )
    {
        try
        {
            string TableName = "ACCOUNT_DETAILS";
            pConnectionState.Open();
            SqlCommand lSqlCommand = new SqlCommand(lQuery , pConnectionState);
            lSqlCommand.Parameters.Add("@SwiftCode" , SqlDbType.VarChar).Value = SwiftCode;
            SqlDataAdapter lSqlDataAdapter = new SqlDataAdapter(lQuery, pConnectionState);
            DataTable lDataTable = new DataTable(TableName);
            DataSet lDataSet = new DataSet();
            lSqlDataAdapter.Fill(lDataSet, TableName);
            pConnectionState.Close();
            return lDataSet;     
        }
        catch (  Exception ex )
        {
            MessageBox.Show("Error: " + ex.ToString());
        }
        return null;
    }
}

1 个答案:

答案 0 :(得分:2)

这是一个看不到树木的例子:

你正在构建你的 SqlCommand lSqlCommand 就好了(现在用@SwiftCode替换@Code之后),但你永远不会使用它。而是使用构造函数创建 SqlDataAdapter lSqlDataAdapter ,该构造函数接受命令文本和连接对象,完全缺少参数

您只需要像这样创建SqlDataAdapter:

SqlDataAdapter lSqlDataAdapter = new SqlDataAdapter(lSqlCommand);

并且您的查询将按预期运行。