Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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#_Visual Studio 2008_Debugging_Stored Procedures - Fatal编程技术网

C# 调试问题(从未调用方法)

C# 调试问题(从未调用方法),c#,visual-studio-2008,debugging,stored-procedures,C#,Visual Studio 2008,Debugging,Stored Procedures,我正在尝试执行一个存储过程,但下面的一行给我带来了麻烦: result = this.sqlDalExternal.ExecuteStoredProcedure(SqlCommonExecutionType.DataTableResult, sqlCommand) as DataTable; 方法ExecuteStoreProcedure显然从未被调用。调试时,我可以从一行跳到下一行(如预期的那样)。然后,当我在这条线上,想进入,它只是跳到捕捉(例外e)。结果的值为null sqlComman

我正在尝试执行一个存储过程,但下面的一行给我带来了麻烦:

result = this.sqlDalExternal.ExecuteStoredProcedure(SqlCommonExecutionType.DataTableResult, sqlCommand) as DataTable;
方法ExecuteStoreProcedure显然从未被调用。调试时,我可以从一行跳到下一行(如预期的那样)。然后,当我在这条线上,想进入,它只是跳到捕捉(例外e)。结果的值为null

sqlCommand.CommandText设置为存储过程名称。为什么从未调用this.sqlDalExternal.ExecuteStoredProcedure方法

    private DataTable ExecuteStoredProcedure(string storedProcedureName, Collection<SqlParameter> parameters)
    {
        DataTable result = null;

        try 
        {
            SqlCommand sqlCommand = new SqlCommand(storedProcedureName);
            if (parameters != null)
                foreach (SqlParameter parameter in parameters)
                    sqlCommand.Parameters.Add(parameter);

            result = this.sqlDalExternal.ExecuteStoredProcedure(SqlCommonExecutionType.DataTableResult, sqlCommand) as DataTable;
        }
        catch(Exception e)
        {
            throw new ExternalSystemAdapterException(9102, e.ToString());
        }
        return result;
    }
私有数据表ExecuteStoreProcedure(string storedProcedureName,集合参数)
{
数据表结果=null;
尝试
{
SqlCommand SqlCommand=新的SqlCommand(storedProcedureName);
if(参数!=null)
foreach(参数中的SqlParameter参数)
sqlCommand.Parameters.Add(参数);
结果=此.sqlDalExternal.ExecuteStoredProcedure(SqlCommonExecutionType.DataTableResult,sqlCommand)作为DataTable;
}
捕获(例外e)
{
抛出新的ExternalSystemAdapterException(9102,例如ToString());
}
返回结果;
}

可能是因为被调用的方法和要调试的方法之间的签名不匹配?:)

你打电话:

ExecuteStoredProcedure(SqlCommonExecutionType, SqlCommand)

您调试的方法:

ExecuteStoreProcedure(字符串, 收藏)


“捕获了NullReferenceException”。下面写着“对象引用未设置为对象的实例。”


建议
this.sqlDalExternal
null
,这解释了为什么从未调用该方法(因为没有可调用的对象)。

“捕获了NullReferenceException”。下面写着“对象引用未设置为对象的实例。”