Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有存储过程的查询返回空_C#_Sql_Odbc_Sybase - Fatal编程技术网

C# 带有存储过程的查询返回空

C# 带有存储过程的查询返回空,c#,sql,odbc,sybase,C#,Sql,Odbc,Sybase,运行下面的查询成功显示返回的结果 sp_wts_lst_mod_amp_mtx 'xxxx', '062306', 'LS-I', 'EA', null 所以我正确地将相同的值作为参数传递给下面的方法,但它返回空值。reader.Read()为false 我的方法有什么问题 public static List<string> GetMatrices(object userMarketId, string userMarketLabelId, string model, strin

运行下面的查询成功显示返回的结果

sp_wts_lst_mod_amp_mtx 'xxxx', '062306', 'LS-I', 'EA', null
所以我正确地将相同的值作为参数传递给下面的方法,但它返回空值。reader.Read()为false

我的方法有什么问题

public static List<string> GetMatrices(object userMarketId, string userMarketLabelId, string model, string amp)
{
    var matrices = new List<string>();
    var connection = new OdbcConnection();
    try
    {
        using (connection = clsWTSCommon.GetDBConnection(userMarketId, null))
        using (var command = connection.CreateCommand())
        {
            command.CommandText = "{CALL " + StoreProcedures.SpWtsLstModAmpMtx + " (?,?,?,?,?)}";
            command.CommandType = CommandType.StoredProcedure;

            command.Parameters.Add("@ctl_mkt_id", OdbcType.NVarChar, 10).Value = userMarketId.ToString();
            command.Parameters.Add("@ctl_mkt_lbl_id", OdbcType.NVarChar, 10).Value = userMarketLabelId;
            command.Parameters.Add("@model_code", OdbcType.NVarChar, 16).Value = model;
            command.Parameters.Add("@amp_code", OdbcType.NVarChar, 3).Value = amp;
            command.Parameters.Add("@language_id", OdbcType.NVarChar, 3).Value = null;

            if (connection.State == ConnectionState.Open)
            {
                var reader = command.ExecuteReader();
                while (reader.Read())
                {
                    matrices.Add(reader.GetString(reader.GetOrdinal("sspl")) + "/" +
                                 reader.GetString(reader.GetOrdinal("peak_gain")));
                }
            }
        }
    }
    catch (Exception ex)
    {
        clsDataAccess.ShowInfo(ex.Message);
    }
    finally
    {
        connection.Close();
        connection.Dispose();
    }

    return matrices;
}
公共静态列表getMatrix(对象userMarketId、字符串userMarketLabelId、字符串模型、字符串amp)
{
变量矩阵=新列表();
var连接=新的OdbcConnection();
尝试
{
使用(connection=clsWTSCommon.GetDBConnection(userMarketId,null))
使用(var command=connection.CreateCommand())
{
command.CommandText=“{CALL”+StoreProcedures.SpWtsLstModAmpMtx+”(?、?、?、?、?)}”;
command.CommandType=CommandType.storedProcess;
Add(“@ctl\u mkt\u id”,OdbcType.NVarChar,10).Value=userMarketId.ToString();
Add(“@ctl\u mkt\u lbl\u id”,OdbcType.NVarChar,10)。Value=userMarketLabelId;
command.Parameters.Add(“@model_code”,OdbcType.NVarChar,16)。Value=model;
command.Parameters.Add(“@amp_code”,OdbcType.NVarChar,3)。Value=amp;
command.Parameters.Add(“@language_id”,OdbcType.NVarChar,3)。Value=null;
if(connection.State==ConnectionState.Open)
{
var reader=command.ExecuteReader();
while(reader.Read())
{
Add(reader.GetString(reader.GetOrdinal(“sspl”))+“/”+
reader.GetString(reader.GetOrdinal(“峰值增益”));
}
}
}
}
捕获(例外情况除外)
{
clsDataAccess.ShowInfo(例如Message);
}
最后
{
connection.Close();
connection.Dispose();
}
返回矩阵;
}
此行:

command.CommandText = "{CALL " + StoreProcedures.SpWtsLstModAmpMtx + " (?,?,?,?,?)}";
应该是:

command.CommandText = StoreProcedures.SpWtsLstModAmpMtx;

干杯-

尝试使用
reader[“columnName”]
而不是
reader.GetString(reader.GetOrdinal(“column”)
。我认为这不是你问题的解决办法,但可能会有帮助。像这样,@dburner reader.Read()为false,所以前面提到的行还不能工作。没有任何返回值来尝试您的建议。实际上不是真的。该行应为:
command.CommandText=StoreProcedures.SpWtsLstModAmpMtx其余部分不需要。谢谢Chris;我不确定,所以没说。