C#執行存儲過程代碼實例,演示如何用C#調用並執行SQLSERVER的存儲過程,是一個數據庫的高級應用,存儲過程相對專業些,但效率更高,而且使SQL的功能發揮的更強大,這僅是一個較簡單的存儲過程調用例子:
01using System;
02using System.Data;
03using System.Data.SqlClient;
04namespace ExecuteStorageProcess
05{
06 public class ExecuteStorageProcess
07 {
08 public static void Main()
09 {
10 SqlConnection mySqlConnection =
11 new SqlConnection(
12 "server=localhost;database=Northwind;uid=sa;pwd=sa"
13 );
14 mySqlConnection.Open();
15 // 設置CommandText屬性為EXECUTE語句
16 SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
17 mySqlCommand.CommandText =
18 "EXECUTE AddProduct @MyProductID OUTPUT, @MyProductName, " +
19 "@MySupplierID, @MyCategoryID, @MyQuantityPerUnit, " +
20 "@MyUnitPrice, @MyUnitsInStock, @MyUnitsOnOrder, " +
21 "@MyReorderLevel, @MyDiscontinued";
22 // 添加過程調用所要用到的參數
23 mySqlCommand.Parameters.Add("@MyProductID", SqlDbType.Int);
24 mySqlCommand.Parameters["@MyProductID"].Direction =
25 ParameterDirection.Output;
26 mySqlCommand.Parameters.Add(
27 "@MyProductName", SqlDbType.NVarChar, 40).Value = "Widget";
28 mySqlCommand.Parameters.Add(
29 "@MySupplierID", SqlDbType.Int).Value = 1;
30 mySqlCommand.Parameters.Add(
31 "@MyCategoryID", SqlDbType.Int).Value = 1;
32 mySqlCommand.Parameters.Add(
33 "@MyQuantityPerUnit", SqlDbType.NVarChar, 20).Value = "1 per box";
34 mySqlCommand.Parameters.Add(
35 "@MyUnitPrice", SqlDbType.Money).Value = 5.99;
36 mySqlCommand.Parameters.Add(
37 "@MyUnitsInStock", SqlDbType.SmallInt).Value = 10;
38 mySqlCommand.Parameters.Add(
39 "@MyUnitsOnOrder", SqlDbType.SmallInt).Value = 5;
40 mySqlCommand.Parameters.Add(
41 "@MyReorderLevel", SqlDbType.SmallInt).Value = 5;
42 mySqlCommand.Parameters.Add(
43 "@MyDiscontinued", SqlDbType.Bit).Value = 1;
44 // 執行命令
45 mySqlCommand.ExecuteNonQuery();
46 // 讀取輸出參數的值
47 Console.WriteLine("New ProductID = " +
48 mySqlCommand.Parameters["@MyProductID"].Value);
49 mySqlConnection.Close();
50 }
51 }
52}
本代碼不包括數據庫的存儲過程實體,你可以自己手動創建一個。
注:更多精彩文章請關注三聯編程教程欄目。