yueyue, I have fallen in love with you for

2011-02-09, 01:18:25 PM

SQL数据库存储过程

Posted on 2011-08-15 00:02  张超的博客  阅读(199)  评论(0)    收藏  举报

存储过程的定义:

ALTER PROCEDURE [dbo].[addStuinfo]
 @name varchar(50),
 @age int,
 @sex varchar(10),
 @address varchar(50)
AS
 insert into stuinfo(name,age,sex,address)
  values(@name,@age,@sex,@address)
******************************************************

存储过程一个简单的例子:

 int addnum = 0;
            try
            {
                //打开数据库连接
                DBHelper.con.Open();
                //创建执行命令
                SqlCommand cmd = new SqlCommand("addStuinfo", DBHelper.con);
                //指定使用的存储过程
                cmd.CommandType = CommandType.StoredProcedure;
                //传递过程参数
                cmd.Parameters.AddWithValue("@name", this.txtName.Text);
                cmd.Parameters.AddWithValue("@age", txtAge.Text);
                cmd.Parameters.AddWithValue("@sex", cboSex.Text);
                cmd.Parameters.AddWithValue("@address", txtAddress.Text);

                addnum = cmd.ExecuteNonQuery();

            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                DBHelper.con.Close();
            }
            //判断
            if (addnum>0)
            {
                MessageBox.Show("添加成功");
            }
            else
            {
                MessageBox.Show("添加失败");
            }

########################################################

protected void Button1_Click(object sender, EventArgs e)
        {
           string str = "server=.\\sqlexpress;uid = sa;pwd=sasasa;database = myschool";
           using (SqlConnection conn = new SqlConnection(str))
           {
               SqlCommand cmd = new SqlCommand("usp_addscore", conn);
               cmd.CommandType = System.Data.CommandType.StoredProcedure;
               conn.Open();
               try
               {
                  
                   cmd.Parameters.Add("@return", System.Data.SqlDbType.Int);//参数添加完默认是输入参数
                   cmd.Parameters.Add("@scoreline", SqlDbType.Int);
                   cmd.Parameters.Add("@addscore", SqlDbType.Int);
                   cmd.Parameters.Add("@stuname", SqlDbType.VarChar,10);

                   cmd.Parameters["@return"].Direction = System.Data.ParameterDirection.ReturnValue;
                   cmd.Parameters["@stuname"].Direction = ParameterDirection.Output;

                   cmd.Parameters["@scoreline"].Value = 70;
                   cmd.Parameters["@addscore"].Value = 2;


                   //cmd.ExecuteNonQuery();
                   SqlDataAdapter da = new SqlDataAdapter(cmd);
                   DataSet ds = new DataSet();
                   da.Fill(ds);
                   GridView1.DataSource = ds.Tables[0].DefaultView;
                   GridView2.DataSource = ds.Tables[1].DefaultView;
                   this.DataBind();


                   Label1.Text = "执行成功!返回值是"+cmd.Parameters["@return"].Value.ToString();
                   Label2.Text = string.Format("最高得分者:{0}", cmd.Parameters["@stuname"].Value.ToString());


               }
               catch (Exception ex)
               {
                   Label1.Text = "出错!"+ex.Message;
               }
            
           }

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3