string sConnectionString,sSelectCommand,sInsertCommand;        sConnectionString = ConfigurationManager.ConnectionStrings["OraConnectionString"].ConnectionString;
        OracleConnection MyConnection = new System.Data.OracleClient.OracleConnection(sConnectionString);        sSelectCommand = "SYSTEM.P_GET_USER_COUNT";
        OracleCommand MyCommand = new OracleCommand();
        MyCommand.Connection = MyConnection;
        MyCommand.CommandText = sSelectCommand;
        MyCommand.CommandType = CommandType.StoredProcedure;        MyCommand.Parameters.Add("vUserID", OracleType.VarChar).Value = sUserID;
        MyCommand.Parameters.Add("CountUser", OracleType.Number).Direction = ParameterDirection.Output;
        //  上边一行等于
        //  MyCommand.Parameters.Add("CountUser", OracleType.Number);
        //  MyCommand.Parameters["CountUser"].Direction = ParameterDirection.Output;        MyCommand.Connection.Open();
        MyCommand.ExecuteNonQuery();
        MyCommand.Connection.Close();        if ((int)(MyCommand.Parameters["CountUser"].Value) == 1)   
        {
            LabelMessage.Text = "该用户ID已被注册!";
            return;
        }
        else if (MyCommand.Parameters["CountUser"].Value == null)
        {
            LabelMessage.Text = "数据库获取数据失败!";
            return;
        }
        else if ((int)(MyCommand.Parameters["CountUser"].Value) != 0)
        {
            LabelMessage.Text = "不可预知的错误!";
            return;
        }在 if ((int)(MyCommand.Parameters["CountUser"].Value) == 1)   不管我执行类型转过不去,直接比较又不行,应该怎样进行操作呢,
对了,我设置断点,MyCommand.Parameters["CountUser"].Value 的值是 0,不过是object类型的,

解决方案 »

  1.   

    错误描述是:指定的转换无效(int)MyCommand.Parameters["CountUser"].Value == 1这样写也是不对的
      

  2.   

    试试这样?Convert.ToInt32(MyCommand.Parameters["CountUser"].Value) == 1
      

  3.   

    int.parse(MyCommand.Parameters["CountUser"].Value)
      

  4.   

    int.parse(MyCommand.Parameters["CountUser"].Value)
    这个方法试了,不行,还是报那个错
    Convert.ToInt32(MyCommand.Parameters["CountUser"].Value) == 1
    这个可以,呵呵,不过有些奇怪它的定义 Convert.ToInt32(bool value)但是真的可以!
      

  5.   

    不过有些奇怪它的定义 Convert.ToInt32(bool value)但是真的可以!
    ------------------Convert.ToInt32有十九个重载