C#調用預存程序

來源:互聯網
上載者:User

標籤:

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)ASSELECT  @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;                  }

 實際例子:

 string constr = "server=192.168.9.111;database=111;uid=sa;pwd=1111234";                using(SqlConnection conn=new SqlConnection(constr))                {                    conn.Open();                    using (SqlCommand cmd = new SqlCommand("p_pageSelect", conn))                    {                        cmd.CommandType = CommandType.StoredProcedure;                        cmd.Parameters.Add(new SqlParameter("@num", SqlDbType.Int));                        cmd.Parameters.Add(new SqlParameter("@tableName", SqlDbType.NVarChar, 50));                        cmd.Parameters.Add(new SqlParameter("@startNum", SqlDbType.Int));                        cmd.Parameters["@num"].Value = this.tbNum.Text;                        cmd.Parameters["@tableName"].Value = this.cmbTableName.Text;                        cmd.Parameters["@startNum"].Value = this.tbStartNum.Text;                        SqlDataAdapter sda = new SqlDataAdapter(cmd);                        DataSet ds = new DataSet();                        sda.Fill(ds);                       dgvData.DataSource= ds.Tables[0];                    }                }

 

C#調用預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.