一下为 代码
        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null || cmdParms.Length>=0)
            {
                foreach (SqlParameter parameter in cmdParms)
                {
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                    {
                        parameter.Value = DBNull.Value;
                    }
                    cmd.Parameters.Add(parameter);
                }
            }
        }
一下为 错误 :
未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 558:                foreach (SqlParameter parameter in cmdParms)
行 559:                {
行 560:                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
行 561:                        (parameter.Value == null))
行 562:                    {
 
可能 您只需 提示一点 我就可以恍然大悟!!嘿嘿

解决方案 »

  1.   

    if (cmdParms != null || cmdParms.Length>=0)
    -->
    if (cmdParms != null && cmdParms.Length>=0)

    if (cmdParms != null)
      

  2.   

    if (cmdParms != null || cmdParms.Length>=0)
    这句错误,楼上正解
      

  3.   

    改了  还是错的未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 558:                foreach (SqlParameter parameter in cmdParms)
    行 559:                {
    行 560:                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
    行 561:                        (parameter.Value == null))
    行 562:                    {
     源文件: e:\studycity\classes\dbhelpersql.cs    行: 560
      

  4.   

    单步走一下,看一下parameter的相关属性值,很自然就知道问题出在哪了
      

  5.   

    foreach (SqlParameter parameter in cmdParms)
    行 559:                {
    行 560:                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
    行 561:                        (parameter.Value != null))  //改这样看看行不行!
    行 562:                    {
      

  6.   

    那可能性就有一个了,你的数组SqlParameter[] cmdParms里面的元素有一个或多个是null值.
    可能的原因是你没有给数组的元素初始化.
      

  7.   

    是啊 我 的里面是有 几个 null  或者空的值```````````` 给原属 初始化????
                    foreach (SqlParameter parameter in cmdParms)
                    {
                        if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                            (parameter.Value == null))
                        {
                            parameter.Value = DBNull.Value;
                        }
                        cmd.Parameters.Add(parameter);
                    }这个foreach 进去 不是给他初始化吗? hbxtlhx(平民百姓) ( ) 信誉:112    Blog 麻烦指导 一下``
      

  8.   

    把你的方法进行如下的改动:
    private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
    {
    if (conn.State != ConnectionState.Open)
    conn.Open();
    cmd.Connection = conn;
    cmd.CommandText = cmdText;
    if (trans != null)
    cmd.Transaction = trans;
    cmd.CommandType = CommandType.Text;//cmdType;
    if (cmdParms != null && cmdParms.Length >= 0)
    {
    foreach (SqlParameter parameter in cmdParms)
    {
    if (parameter != null)
    {
    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
    (parameter.Value == null))
    {
    parameter.Value = DBNull.Value;
    }
    cmd.Parameters.Add(parameter);
    }
    }
    }
    }
      

  9.   

    .......我刚才更总了一下 我决的 看想是我 在 定义 参数数组的 时候我多定义了  所以出错
    if (parameter != null)    看见 楼上说的 我好像有电明白了 虽然我还没有测试 但是我估计 就是 这个问题   哈哈``````````顶111111````````
      

  10.   

    那可能性就有一个了,你的数组SqlParameter[] cmdParms里面的元素有一个或多个是null值.
    可能的原因是你没有给数组的元素初始化.
    0 个```
      

  11.   

    .net中 if(obj!=null && obj=xxxx)运行当中虽然计算前面表达式为false则不计算后面的表达式但如果obj是一引用对象时会统一先检查类型的安全性,这样就会有空引用的错误,一般要在外面多加一层是否为NULL的检测