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类型的,
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类型的,
这个方法试了,不行,还是报那个错
Convert.ToInt32(MyCommand.Parameters["CountUser"].Value) == 1
这个可以,呵呵,不过有些奇怪它的定义 Convert.ToInt32(bool value)但是真的可以!
------------------Convert.ToInt32有十九个重载