C# 調用存儲過程

 using System.Data.SqlClient;
                   //如果存儲過程沒有輸入和輸出參數,而且不返回查詢結果

  SqlCommand cmd = new SqlCommand("存儲過程名", conn);
  cmd.CommandType = CommandType.StoredProcedure;
  cmd.ExecuteNonQuery();


                         //如果存儲過程帶輸入參數

   SqlCommand cmd = new SqlCommand("存儲過程名", conn);
   cmd.CommandType = CommandType.StoredProcedure;
   cmd.Parameters.Add(new SqlParameter("存儲過程輸入參數變量名", 數據類型));
//如cmd.Parameters.Add(new SqlParameter("@riqi", SqlDbType.DateTime, 8));
//把具體的值傳給輸入參數
   cmd.Parameters["存儲過程輸入參數"].Value =具體的值;
//如cmd.Parameters["@riqi"].Value = this.textBox1.Text;
//執行存儲過程
  cmd.ExecuteNonQuery();


                           //如果存儲過程帶輸出參數

   SqlCommand cmd = new SqlCommand("存儲過程名", conn);
   cmd.CommandType = CommandType.StoredProcedure;
   cmd.Parameters.Add(new SqlParameter("存儲過程輸出參數變量名", 數據類型));
   cmd.Parameters["存儲過程輸出參數變量名"].Direction = ParameterDirection.Output;
   cmd.ExecuteNonQuery();
//顯示輸出參數的值cmd.Parameters["存儲過程輸出參數變量名"].Value   
//如this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();

 


                          //如果存儲過程帶輸出和輸出參數

   SqlCommand cmd = new SqlCommand("存儲過程名", conn);
   cmd.CommandType = CommandType.StoredProcedure;
   cmd.Parameters.Add(new SqlParameter("存儲過程輸入參數變量名", 數據類型));
   cmd.Parameters["存儲過程輸入參數"].Value =具體的值;
   cmd.Parameters.Add(new SqlParameter("存儲過程輸出參數變量名", 數據類型));
   cmd.Parameters["存儲過程輸出參數變量名"].Direction = ParameterDirection.Output;
   cmd.ExecuteNonQuery();
//顯示輸出參數的值cmd.Parameters["存儲過程輸出參數變量名"].Value   
//如this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();
 

                            調用帶輸入參數的存儲過程

【例2】創建存儲過程AddNewCategory實現往Category表中添加新的商品類別,新的商品分類名稱CategoryName作爲輸入參數輸入。
CREATE PROCEDURE AddNewCategory
 (@categoryName nvarchar(50))
AS
 INSERT INTO Category (CategoryName) VALUES (@categoryName)

【例】調用上述存儲過程AddNewCategory
      try
            {
                // 數據庫連接字符串
                string connStr = "server=localhost;uid=sa;pwd=;database=eshop";
                // 創建Connection 對象
                SqlConnection conn = new SqlConnection(connStr);
                // 打開數據庫連接
                conn.Open();

                SqlCommand cmd = new SqlCommand("AddNewCategory", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@categoryName", SqlDbType.NVarChar,50));
                cmd.Parameters["@categoryName"].Value = this.textBox1.Text;
                cmd.ExecuteNonQuery();
                MessageBox.Show("插入成功");
            }

       catch
           {  
               MessageBox.Show("操作不成功");
               return;
            }

                                 
                               調用帶輸入和輸出參數的存儲過程

【例1】創建存儲過程ShoppingCartItemCount獲取某購物車中購物種數並作爲輸出參數輸出,購物車編號CartID爲輸入參數。
CREATE Procedure [dbo].[ShoppingCartItemCount]
(   @CartID    nvarchar(50),
    @ItemCount int OUTPUT
)
AS
SELECT  @ItemCount = COUNT(ProductID)  FROM  ShoppingCart    
WHERE  CartID = @CartID

【例】調用上述存儲過程ShoppingCartItemCount
          try
            {
                // 數據庫連接字符串
                string connStr = "server=localhost;uid=sa;pwd=;database=eshop";
                // 創建Connection 對象
                SqlConnection conn = new SqlConnection(connStr);
                // 打開數據庫連接
                conn.Open();

                SqlCommand cmd = new SqlCommand("ShoppingCartItemCount", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@CartID", SqlDbType.NVarChar,50));
                cmd.Parameters["@CartID"].Value = this.textBox2.Text;
                cmd.Parameters.Add(new SqlParameter("@ItemCount",SqlDbType.Int));
                cmd.Parameters["@ItemCount"].Direction = ParameterDirection.Output;
                 cmd.ExecuteNonQuery();
               //顯示輸出參數的值cmd.Parameters["存儲過程輸出參數變量名"].Value   
                 this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();
               
              }

                 catch
                  {

                     MessageBox.Show("操作不成功");
                     return;
                  }


原文:http://course.zjnu.cn/nyh/cyf/dbcourse/show.asp?id=374

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章