谁能写一个简单的asp.net存储过程关于oledb的!最好能将语法解释一下!不胜感激!!

解决方案 »

  1.   

            myCommand.CommandType = CommandType.StoredProcedure;//类型。
            myCommand.CommandText = "execute jc_exe_test ";//存储过程名字
            myCommand.Connection = myConn;//连接
            myCommand.Parameters.Add("@a", System.Data.OleDb.OleDbType.VarChar, 15);//参数
            myCommand.Parameters["@a"].Direction = ParameterDirection.Input;
            myCommand.Parameters["@a"].Value = zchTxt.Text.Trim();
            try
            {
                myConn.Open();
           
            }
            catch
            {
             // MessageBox.Show("数据库连接失败!!");
                return;
            }
            myCommand.ExecuteNonQuery();//执行。
            myConn.Close();差不多都这样了。
      

  2.   

    存储过程:create proc add用户
      
        @id varchar(20),
        @name varchar(20),
        @pwd varchar(20),
        @sex char(2)=null,
        @age varchar(4)=null,
        @intergral varchar(20)=null,
        @email varchar(30)=null,
        @sort varchar(20)=null,
        @image varchar(20)=null,
        @ask varchar(30),
        @answer varchar(30),
        @time varchar(40)
        as
        insert into 用户(id,name,pwd,sex,age,intergral,email,sort,image,ask,answer,time)values(@id,@name,@pwd,@sex,@age,@intergral,@email,@sort,@image,@ask,@answer,@time)
           SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=酷猪");//连接并配置数据库
            SqlCommand cmd = new SqlCommand();//打开命令,执行语句
            cmd.Connection = cn;//实例化cmd
            cmd.CommandText = "add用户";//存储过程名
            cmd.CommandType = CommandType.StoredProcedure;//声明add用户为存储过程        cmd.Parameters.AddWithValue("@id", tid.Text.Trim());
            cmd.Parameters.AddWithValue("@name", tname.Text.Trim());
            cmd.Parameters.AddWithValue("@pwd", tpwd1.Text.Trim());
            cmd.Parameters.AddWithValue("@age", "18");
            cmd.Parameters.AddWithValue("@email", temail.Text);
            cmd.Parameters.AddWithValue("@ask", dask.SelectedValue);
            cmd.Parameters.AddWithValue("@answer", tanswer.Text.Trim());
            cmd.Parameters.AddWithValue("@sex", "男");
            cmd.Parameters.AddWithValue("@image", Imageheader.ImageUrl);
            cmd.Parameters.AddWithValue("@time", DateTime.Now.ToLongDateString());
            cmd.Parameters.AddWithValue("@sort", "普通用户");
            cmd.Parameters.AddWithValue("@intergral", 0);//传参        try
            {
                cn.Open();//打开连接
                cmd.ExecuteNonQuery();//打开cmd,加载传入数据
                Response.Redirect("~/Login.aspx");//成功提交,跳转页面
            }
            catch(Exception e)
            {
                 throw new Exception;
                        }
            finally
            {
                if (cn.State == ConnectionState.Open)//判断cn是否打开,打开,完成语句,关闭
                {
                    cn.Close();
                }
            }
      

  3.   

    多谢各位我发现有的地方说的很复杂啊!
    请看这里搞得我晕头转向:
    这种create proc add用户我见过!!下面的真没见过!!下面开始学T-SQL的语法一.注释
    -- 单行注释,从这到本行结束为注释,类似C++,c#中//
    /* … */ 多行注释,类似C++,C#中/* … */二.变量(int, smallint, tinyint, decimal,float,real, money ,smallmoney, text ,image, char, varchar)
    语法:
    DECLARE  
    {
    {@local_variable data_type}
    } [,...n]
    例如:
    declare @ID int --申明一个名为@ID的变量,类型为int型三.在SQL Server窗口中打印出变量的值
    语法:
    PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expr四.变量赋值
    例如:--从数据表中取出第一行数据的ID,赋值给变量@id,然后打印出来
    Declare @ID int
    Set @ID = (select top(1) categoryID from categories)
    Print @ID在SQL中,我们不能像代码那样直接给变量赋值,例如@id = 1,如果要达到这样的功能,可以这样写:Declare @ID int
    Set @ID = (select 1) -- 类似 @ID=1
    Select @id=1 -- 类似 @ID=1
    Print @ID
    五.变量运算(+,-,*,/,……)
    以下必要时候省略变量申明
    Set @ID = (select 1+5) --类似 @ID=1+5
    Set @ID=(select 1-@ID) --类似 @ID=1-@ID六.比较操作符
    • > (greater than).  
    • < (less than).  
    • = (equals).  
    • <= (less than or equal to).  
    • >= (greater than or equal to).  
    • != (not equal to).  
    • <> (not equal to).  
    • !< (not less than).  
    • !> (not greater than).  
    没什么说的
    七.语句块:Begin … end
    将多条语句作为一个块,类似与C++,C#中的{ }
    例如:
    Begin
    Set @ID1 = (select 1)
    Set @ID2 = (select 2)
    End八.If, if…else…
    语法:
    IF Boolean_expression
    {sql_statement | statement_block}
    [ELSE
    {sql_statement | statement_block}]
    例如:If @id is not null
    Print ‘@id is not null
    if @ID = 1
    begin
    Set @ID = (select 1 + 1)
    end
    else
    begin  
    set @ID=(select 1+2)
    end
    上面的例子用到了比较操作符,语句块,和IF的语法。九.执行其他存储过程 EXEC
    例如EXEC dbo.[Sales by Year] @Beginning_Date=’1/01/90’, @Ending_Date=’1/01/08’十.事务语法:
    BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable]
    例如BEGIN TRAN
    -- 做某些操作,例如Insert into …
    if @@error <> 0
    BEGIN
    ROLLBACK TRAN
    END
    else
    BEGIN
    COMMIT TRAN
    END十一.游标我们可以在存储过程中用Select语句取出每一行数据进行操作,这就需要用到游标。
    语法:
    DECLARE cursor_name CURSOR
    [LOCAL | GLOBAL]
    [FORWARD_ONLY | SCROLL]
    [STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
    [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
    [TYPE_WARNING]
    FOR select_statement[FOR UPDATE [OF column_name [,...n]]]
    例如:DECLARE @au_id varchar(11), @au_fname varchar(20) –申明变量
    --申明一个游标
    DECLARE authors_cursor CURSOR FOR  
    SELECT au_id, au_fname FROM authors  
    --打开游标
    OPEN authors_cursor
    --取出值
    FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname
    --循环取出游标的值
    WHILE @@FETCH_STATUS = 0
    BEGIN
    Print @au_id
    Print @au_fname
    Print ‘ ’
    FETCH NEXT FROM authors_cursor  
    INTO @au_id, @au_fname
    END
    CLOSE authors_cursor –关闭游标
    DEALLOCATE authors_cursor --释放游标
      

  4.   

    你把你学的存储过程语法温习下吧。这些都是存储过程的基本语法
    比如 我上边那个存储表add用户,表名叫用户。验证用户登录的时候,需要用到的存储过程如下
    create proc Select用户
    (
         @id varchar(20),
         @pwd varchar(20),
         @cunt int output
         select @cunt=Count(*) from 用户 where id=@id and pwd=@pwd
    )
    SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=酷猪");
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                cmd.CommandText = "Select用户";
                cmd.CommandType = CommandType.StoredProcedure;            cmd.Parameters.AddWithValue("@id", tid.Text.Trim());
                cmd.Parameters.AddWithValue("@pwd", tpwd.Text.Trim());            SqlParameter p = new SqlParameter("@cnt", SqlDbType.Int, 4);
                p.Direction = ParameterDirection.Output;
                cmd.Parameters.Add(p);
                try
                {
                    cn.Open();
                    cmd.ExecuteNonQuery();
                    int cunt = int.Parse(cmd.Parameters["@cnt"].Value.ToString());
                    if (cunt > 0)
                    {
                        Session["username"] = tid.Text + "";
                        Response.Redirect("~/Music.aspx");
                    }
                }
                catch
                {
                    lab.Text = "用户名不存在或密码错误";
                }
                finally
                {
                    if (cn.State == ConnectionState.Open)
                    {
                        cn.Close();
                    }            }