windows2003无法安装Windows Live Installer,将就着用CE写了。在对代码的精简下(绿色-->红色代码),由于没有对SqlDbType进行相应的指定类型,出现了object与SqlDbType的异常(系统无法捕获),主要是针对0,找了好久才发现!偷懒反被0耍了,哈哈。当然下面的精简只适合在修改少数字段的情况下方便,对于数目较多的情况下还是采用对象模型方便。

            Jasen.Business.Operate operate = new Jasen.Business.Operate();
            Jasen.Business.BaseModel baseModel = new Jasen.Business.BaseModel();

            Jasen.Business.SysOwnuser ownuser = new Jasen.Business.SysOwnuser();*/
            for (int i = 0; i < dgdList.Items.Count; i++)
            {
                DataGridItem item = dgdList.Items[i];
                if (((CheckBox)item.FindControl("chkSelect")).Checked == true)
                {
                    int ID = int.Parse(((CheckBox)item.FindControl("chkSelect")).Text.ToString());
                  /*  baseModel = operate.GetModelby(m_ownuser, "sys_ownuser", "where ownuser_, OwnUser.Name.ToString(), Request.UserHostAddress.ToString());
                }
            }

           new SqlParameter("@state", 0),对于构造函数public SqlParameter(parameterName,value)和public SqlParameter(parameterName,SqlDbType dbType,0就处于边缘地带了,断点测试发现sqlhelper中

          foreach (SqlParameter p in commandParameters)
          {
             if( p != null )
             {
                // Check for derived output value with no value assigned
                if ( ( p.Direction == ParameterDirection.InputOutput ||  p.Direction == ParameterDirection.Input ) && (p.Value == null))
                {
                  p.Value = DBNull.Value;
                }
               command.Parameters.Add(p);
            }
          }

        传入@state时系统无法判断0(开始没有设置类型)的类型,默认为null,p.Value 设置成了DBNull.Value;

        因此以后有必要针对于0的时候还是不要偷懒,起码设置下0的类型。不要以为sqlparameter构造函数中,0就是个object,传入进去就可以了,嘿嘿。

        吃一堑长一智!!!

 

相关文章:

  • 2021-08-03
  • 2022-12-23
  • 2021-09-30
  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
  • 2021-07-16
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案