其实你的问题直接写SQL判断就行了,没必要用存储过程

解决方案 »

  1.   

    CREATE TABLE [dbo].[aaa] (
    [UserName] [varchar] (50) NOT NULL ,
    [PWD] [varchar] (50) NOT NULL 
    ) ON [PRIMARY]
    GOSET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS OFF 
    GOCREATE PROC au_info @name varchar(40), @pwd varchar(20) ,@c int output
    as 
    select @c=count(*) from aaa where UserName = @name and PWD=@pwd
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GOprivate void Button1_Click(object sender, System.EventArgs e)
    {
    if(DBAuthenticate(TextBox1.Text,TextBox2.Text)==0)
    {
    Response.Write("密码错误");
    }
    } private int DBAuthenticate(string strUsername,string strPassword)
    {
    //OleDbConnection myConnection= new OleDbConnection(ConfigurationSettings.AppSettings["connectionString"]);
    OleDbConnection myConnection= new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=test;UID=sa");
    myConnection.Open(); OleDbCommand myCommand = new OleDbCommand("au_info",myConnection);
    myCommand.CommandType = CommandType.StoredProcedure; myCommand.Parameters.Add("@UserName",strUsername);
    myCommand.Parameters.Add("@PWD",strPassword);
    OleDbParameter custDA = myCommand.Parameters.Add("RETURN_VALUE",OleDbType.Integer);
    custDA.Direction =ParameterDirection.ReturnValue;

    myCommand.ExecuteNonQuery();
    int intResult;
    intResult = System.Convert.ToInt32(myCommand.Parameters["RETURN_VALUE"].Value.ToString());
    myConnection.Close();
    if (intResult < 0) 
    {
    Response.Write(intResult.ToString());
    }
    return intResult;
    }
    主要问题是添加参数的时候,位置搞错了。
      

  2.   

    method(云青青兮欲雨,水澹澹兮生烟):下面这个东东写到哪里?我用的ORACLE816
    CREATE TABLE [dbo].[aaa] (
    [UserName] [varchar] (50) NOT NULL ,
    [PWD] [varchar] (50) NOT NULL 
    ) ON [PRIMARY]
    GOSET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS OFF 
    GOCREATE PROC au_info @name varchar(40), @pwd varchar(20) ,@c int output
    as 
    select @c=count(*) from aaa where UserName = @name and PWD=@pwd
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
      

  3.   

    oracle816里面要建一个名为DBAuthenticate
    文本如下:
    CREATE PROCEDURE DBAuthenticate(
      @username Varchar( 100 ),
      @password Varchar( 100 )
    )
    AsDECLARE @ID INT
    DECLARE @actualPassword Varchar( 100 )SELECT
      @ID = IdentityCol,
      @actualPassword = u_password
      FROM UserList
      WHERE u_username = @usernameIF @ID IS NOT NULL
      IF @password = @actualPassword
        RETURN @ID
      ELSE
        RETURN - 2
    ELSE
      RETURN - 1
    GO
    怎么建啊!!!!!!!!!!
      

  4.   

    SQLSERVER里头的这个属性IdentityCol
    在ORACLE中用什么可替代?
      

  5.   

    我真不懂你为什么要用PROCEDURE,直接写sql会死吗,有不是很复杂的逻辑
      

  6.   

    你的RETURN_VALUE是OutPut型的,应该加这么一句话
    RETURN_VALUE.Direction = System.Data.ParameterDirection.Output;
      

  7.   

    这里已经给你搞定了 http://expert.csdn.net/Expert/topic/2849/2849586.xml?temp=.1277429