- CREATE PROCEDURE [dbo].[GetNameById]
- @studentid varchar(8),
- @studentname nvarchar(50) OUTPUT
- AS
- BEGIN
- SELECT @studentname=studentname FROM student
- WHERE studentid=@studentid
- if @@Error<>0
- RETURN -1
- else
- RETURN 0
- END
-
-
- using (SqlConnection conn = new SqlConnection(connStr))
- {
- try
- {
- SqlCommand cmd = new SqlCommand("GetNameById", conn);
- cmd.CommandType = CommandType.StoredProcedure;
- cmd.Parameters.AddWithValue("@studentid", "09888888");
- SqlParameter parOutput =cmd.Parameters.Add("@studentname", SqlDbType.NVarChar, 50);
- parOutput.Direction = ParameterDirection.Output;
- SqlParameter parReturn = new SqlParameter("@return", SqlDbType.Int);
- parReturn.Direction = ParameterDirection.ReturnValue;
- cmd.Parameters.Add(parReturn);
- conn.Open();
- cmd.ExecuteNonQuery();
- MessageBox.Show(parOutput.Value.ToString());
- MessageBox.Show(parReturn.Value.ToString());
- }
- catch (System.Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
-
-
- Create PROCEDURE AddOrderTran
- @country nvarchar(100),
- @adds nvarchar(100),
- @ynames nvarchar(100),
- @pids nvarchar(100),
- @cellp nvarchar(100),
- @cphone nvarchar(100),
- @amounts nvarchar(100),
- @cartnumber nvarchar(100)
- as
- Declare @id int
- BEGIN TRANSACTION
- insert into Orders(Order_Country,Order_Adress,Order_UserName,Order_PostID,Cells,Order_Phone,Total_pay,CartNumber,IsPay)
- values (@country,@adds,@ynames,@pids,@cellp,@cphone,@amounts,@cartnumber,'0')
- Select @id=@@identity
- insert into Orders_Item (OrderNumber,ProductsID,Products_Color,Products_Price,Order_Qty,Item_Total)
- select @id,Carts_Item.ProductsID,Carts_Item.Products_Color,Carts_Item.Products_Price,Carts_Item.Item_Qty,Carts_Item.Total_Pay
- from Carts_Item where Carts_Item.CartNumber=@cartnumber
- delete Carts_Item where CartNumber=@cartnumber
- IF @@error <> 0 --发生错误
- BEGIN
- ROLLBACK TRANSACTION
- RETURN 0
- END
- ELSE
- BEGIN
- COMMIT TRANSACTION
- RETURN @id --执行成功
- END
-
-
-
- #region 执行存储过程
-
- SqlParameter[] param = new SqlParameter[]
- {
- new SqlParameter("@country",country),
- new SqlParameter("@adds",adds),
- new SqlParameter("@ynames",ynames),
- new SqlParameter("@pids", pids),
- new SqlParameter("@cellp",cellp),
- new SqlParameter("@cphone", cphone),
- new SqlParameter("@amounts",amounts),
- new SqlParameter("@cartnumber",cartnumber),
- new SqlParameter("@return",SqlDbType.Int)
- };
- param[8].Direction = ParameterDirection.ReturnValue;
- MSCL.SqlHelper.RunProcedure("AddOrderTran", param);
- object obj = param[8].Value;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 本文的数据库用的是sql server自带数据Northwind
-
- 1.只返回单一记录集的存储过程
-
- SqlConnection sqlconn = new SqlConnection(conn);
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = sqlconn;
- cmd.CommandText = "Categoriestest1";
- cmd.CommandType = CommandType.StoredProcedure;
-
- SqlDataAdapter dp = new SqlDataAdapter(cmd);
- DataSet ds = new DataSet();
- dp.Fill(ds);
- GridView1.DataSource = ds;
- GridView1.DataBind();
-
-
-
- 存储过程Categoriestest1
- CREATE PROCEDURE Categoriestest1
- AS
- select *
- from Categories
- GO
-
-
-
- 2. 没有输入输出的存储过程
- SqlConnection sqlconn = new SqlConnection(conn);
- SqlCommand cmd = new SqlCommand();
-
- cmd.Connection = sqlconn;
- cmd.CommandText = "Categoriestest2";
- cmd.CommandType = CommandType.StoredProcedure;
- sqlconn.Open();
- Label1.Text = cmd.ExecuteNonQuery().ToString();
- sqlconn.Close();
-
-
- 存储过程Categoriestest2
-
- CREATE PROCEDURE Categoriestest2 AS
- insert into dbo.Categories
- (CategoryName,[Description],[Picture])
- values ('test1','test1',null)
- GO
-
-
-
- 3. 有返回值的存储过程
- SqlConnection sqlconn = new SqlConnection(conn);
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = sqlconn;
- cmd.CommandText = "Categoriestest3";
- cmd.CommandType = CommandType.StoredProcedure;
-
- IDataParameter[] parameters = {
- new SqlParameter("rval", SqlDbType.Int,4)
- };
-
- parameters[0].Direction = ParameterDirection.ReturnValue;
-
- cmd.Parameters.Add(parameters[0]);
-
- sqlconn.Open();
-
- Label1.Text = cmd.ExecuteNonQuery().ToString();
- sqlconn.Close();
-
- Label1.Text += "-" + parameters[0].Value.ToString() ;
-
-
- 存储过程Categoriestest3
-
- CREATE PROCEDURE Categoriestest3
- AS
- insert into dbo.Categories
- (CategoryName,[Description],[Picture])
- values ('test1','test1',null)
- return @@rowcount
- GO
-
- 4. 有输入参数和输出参数的存储过程
-
- SqlConnection sqlconn = new SqlConnection(conn);
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = sqlconn;
- cmd.CommandText = "Categoriestest4";
- cmd.CommandType = CommandType.StoredProcedure;
-
- IDataParameter[] parameters = {
- new SqlParameter("@Id", SqlDbType.Int,4) ,
- new SqlParameter("@CategoryName", SqlDbType.NVarChar,15) ,
- };
-
- parameters[0].Direction = ParameterDirection.Output;
- parameters[1].Value = "testCategoryName";
-
- cmd.Parameters.Add(parameters[0]);
- cmd.Parameters.Add(parameters[1]);
-
- sqlconn.Open();
-
- Label1.Text = cmd.ExecuteNonQuery().ToString();
- sqlconn.Close();
-
- Label1.Text += "-" + parameters[0].Value.ToString() ;
-
- 存储过程Categoriestest4
-
- CREATE PROCEDURE Categoriestest4
- @id int output,
- @CategoryName nvarchar(15)
- AS
- insert into dbo.Categories
- (CategoryName,[Description],[Picture])
- values (@CategoryName,'test1',null)
- set @id = @@IDENTITY
- GO
-
-
-
- 5. 同时具有返回值、输入参数、输出参数的存储过程
-
- SqlConnection sqlconn = new SqlConnection(conn);
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = sqlconn;
- cmd.CommandText = "Categoriestest5";
- cmd.CommandType = CommandType.StoredProcedure;
-
- IDataParameter[] parameters = {
- new SqlParameter("@Id", SqlDbType.Int,4) ,
- new SqlParameter("@CategoryName", SqlDbType.NVarChar,15) ,
- new SqlParameter("rval", SqlDbType.Int,4)
- };
-
- parameters[0].Direction = ParameterDirection.Output;
- parameters[1].Value = "testCategoryName";
- parameters[2].Direction = ParameterDirection.ReturnValue;
-
- cmd.Parameters.Add(parameters[0]);
- cmd.Parameters.Add(parameters[1]);
- cmd.Parameters.Add(parameters[2]);
-
- sqlconn.Open();
-
- Label1.Text = cmd.ExecuteNonQuery().ToString();
- sqlconn.Close();
-
- Label1.Text += "-" + parameters[0].Value.ToString() + "-" + parameters[2].Value.ToString();
-
- 存储过程Categoriestest5
-
- CREATE PROCEDURE Categoriestest5
- @id int output,
- @CategoryName nvarchar(15)
- AS
- insert into dbo.Categories
- (CategoryName,[Description],[Picture])
- values (@CategoryName,'test1',null)
- set @id = @@IDENTITY
- return @@rowcount
- GO
-
-
- 6. 同时返回参数和记录集的存储过程
- SqlConnection sqlconn = new SqlConnection(conn);
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = sqlconn;
- cmd.CommandText = "Categoriestest6";
- cmd.CommandType = CommandType.StoredProcedure;
-
- IDataParameter[] parameters = {
- new SqlParameter("@Id", SqlDbType.Int,4) ,
- new SqlParameter("@CategoryName", SqlDbType.NVarChar,15) ,
- new SqlParameter("rval", SqlDbType.Int,4)
- };
-
- parameters[0].Direction = ParameterDirection.Output;
- parameters[1].Value = "testCategoryName";
- parameters[2].Direction = ParameterDirection.ReturnValue;
-
- cmd.Parameters.Add(parameters[0]);
- cmd.Parameters.Add(parameters[1]);
- cmd.Parameters.Add(parameters[2]);
-
- SqlDataAdapter dp = new SqlDataAdapter(cmd);
- DataSet ds = new DataSet();
-
- dp.Fill(ds);
-
- GridView1.DataSource = ds.Tables[0];
- GridView1.DataBind();
-
- Label1.Text = "";
-
- Label1.Text += parameters[0].Value.ToString() + "-" + parameters[2].Value.ToString();
-
- 存储过程Categoriestest6
-
- CREATE PROCEDURE Categoriestest6
- @id int output,
- @CategoryName nvarchar(15)
- AS
- insert into dbo.Categories
- (CategoryName,[Description],[Picture])
- values (@CategoryName,'test1',null)
- set @id = @@IDENTITY
- select * from Categories
- return @@rowcount
- GO
-
-
- 7. 返回多个记录集的存储过程
-
- SqlConnection sqlconn = new SqlConnection(conn);
- SqlCommand cmd = new SqlCommand();
-
- cmd.Connection = sqlconn;
- cmd.CommandText = "Categoriestest7";
- cmd.CommandType = CommandType.StoredProcedure;
-
- SqlDataAdapter dp = new SqlDataAdapter(cmd);
- DataSet ds = new DataSet();
- dp.Fill(ds);
- GridView1.DataSource = ds.Tables[0];
- GridView1.DataBind();
- GridView2.DataSource = ds.Tables[1];
- GridView2.DataBind();
-
-
- 存储过程Categoriestest7
-
- CREATE PROCEDURE Categoriestest7
- AS
- select * from Categories
- select * from Categories
- GO
|