源代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.OracleClient;
using System.Drawing;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string sConfirmCode;
        this.Title = "欢迎光临XXXXXXX中心";
        if (!IsPostBack)
        {
            if (Session["UserID"] == null)
            {
                LabelWelcome.Text = "欢迎光临,请先登陆";
            }            //增加了创建验证码得代码 2007-3-1 congcong
            sConfirmCode = GetConfirmCode(5);
            Session["ConfirmCode"] = sConfirmCode;
            Image1.ImageUrl = "ImageConfirmCode.aspx";
            // 增加代码结束 2007-3-1 congcong
        }
    }
    protected void ButtonLogin_Click(object sender, EventArgs e)
    {
        string sUserID, sPassword, sUserName, sUserLvl, sCompany;        //增加了对于验证码得判断 2007-3-1 congcong
        string sConfirmCode,sSessionConfirmCode;
        sConfirmCode = TextBoxConfirmCode.Text;
        sSessionConfirmCode = Session["ConfirmCode"].ToString();
        if (sConfirmCode != sSessionConfirmCode)
        {
            Response.Redirect("错误报告.aspx?ErrorCode=验证码输入错误!请返回,重新输入");
        }        // 增加代码结束 2007-3-1 congcong        sUserID = TextBoxUserID.Text;
        sPassword = TextBoxUserPassword.Text;        LabelWelcome.Text = sUserID;
        string sConnectionString, sSelectCommand;        sConnectionString = ConfigurationManager.ConnectionStrings["OraConnectionString"].ConnectionString;
        OracleConnection MyConnection = new System.Data.OracleClient.OracleConnection(sConnectionString);        sSelectCommand = "scott.P_CHECK_USER_PASSWORD";
        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("vUserPassword", OracleType.VarChar).Value = sPassword;
        MyCommand.Parameters.Add("vUserlvl", OracleType.VarChar, 1).Direction = ParameterDirection.Output;
        MyCommand.Parameters.Add("CountUser", OracleType.Number).Direction = ParameterDirection.Output;
        MyCommand.Parameters.Add("vUserName", OracleType.VarChar, 20).Direction = ParameterDirection.Output;
        MyCommand.Parameters.Add("vCompany", OracleType.VarChar, 20).Direction = ParameterDirection.Output;        MyCommand.Connection.Open();
        MyCommand.ExecuteNonQuery();        if (Convert.ToInt32(MyCommand.Parameters["CountUser"].Value) == 0)
        {
            Response.Redirect("错误报告.aspx?ErrorCode=5");
            return;
        }
        else if (MyCommand.Parameters["CountUser"].Value == null)
        {
            Response.Redirect("错误报告.aspx?ErrorCode=6");
            return;
        }
        else if (Convert.ToInt32(MyCommand.Parameters["CountUser"].Value) != 1)
        {
            Response.Redirect("错误报告.aspx?ErrorCode=不可预知的错误");
            return;
        }        sUserName = MyCommand.Parameters["vUserName"].Value.ToString();
        sCompany = MyCommand.Parameters["vCompany"].Value.ToString();
        sUserLvl = MyCommand.Parameters["vUserlvl"].Value.ToString();
        LabelWelcome.Text = "欢迎你光临西南物流网上查询系统:" + sUserName;        Session["UserID"] = sUserID;
        Session["UserName"] = sUserName;
        Session["UserLvl"] = sUserLvl;
        Session["Company"] = sCompany;        string sSelectCommand1;//qrj edit at 2007.10.08
        //增加对于用户冻结状态的判断        sSelectCommand1 = "select userstatu from scott.netusersearch where userid = :userid";
        OracleCommand MyCommand1 = new OracleCommand();
        MyCommand1.Connection = MyConnection;
        MyCommand1.CommandText = sSelectCommand1;
        MyCommand1.CommandType = CommandType.Text;
        MyCommand1.Parameters.Add(":userid", OracleType.VarChar).Value = sUserID;        MyCommand1.Connection.Open();        OracleDataReader odr;        odr = MyCommand1.ExecuteReader();        string sStatu;
        if (odr.Read())
        {
            sStatu = odr[0].ToString();
        }
        else
        {
            Response.Redirect("错误报告.aspx?ErrorCode=不存在输入的用户ID");
            return;
        }
        odr.Close();        if (sStatu == "0")
        {
            Response.Redirect("错误报告.aspx?ErrorCode=输入的用户ID的用户已经处于冻结状态,需要解除冻结才能登录!");
            return;
        }        MyCommand.Connection.Close();        Response.Redirect("load.aspx");
    }    protected string GetConfirmCode(int VcodeNum)
    {
        string Vchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
        string[] VcArray = Vchar.Split(new Char[] { ',' });
        string VNum = "";
        int temp = -1;        Random rand = new Random();        for (int i = 1; i < VcodeNum + 1; i++)
        {
            if (temp != -1)
            {
                rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));
            }            int t = rand.Next(35);            temp = t;
            VNum += VcArray[t];
        }
        return VNum;
    }
}
报错位置如下:
        MyCommand.Connection.Open();
大家帮帮吧,谢谢啦

解决方案 »

  1.   

    http://www.cnblogs.com/davidullua/articles/180792.html
      

  2.   

    是数据库连接有错误。把你的ORCLE再配置一下看看
      

  3.   

    配置一下listener.ora和tnsnames.ora文件。也可以直接用Net Manager
    配置。
    如果再不行的话,可能是web.config 里的OraConnectionString连接语句錯了。
      

  4.   

    连接字符串写的不对,照下面这个写试试
    <add key="OraConnectionString" value="user id=abc;data source=servername;password=123"></add>
    abc是用户名
    123是口令
    servername是服务名
      

  5.   

         <add name="OraConnectionString" connectionString="Data Source=ORCL_DATABASE-SERVER;User ID=sysman;Password=sa;Unicode=True"
             providerName="System.Data.OracleClient" />
         <add name="ConnectionString" connectionString="Data Source=ORCL_DATABASE-SERVER;User ID=sysman;Unicode=True"
             providerName="System.Data.OracleClient" />
     </connectionStrings>