C#執(zhí)行存儲(chǔ)過程代碼實(shí)例

字號(hào):


    C#執(zhí)行存儲(chǔ)過程代碼實(shí)例,演示如何用C#調(diào)用并執(zhí)行SQLSERVER的存儲(chǔ)過程,是一個(gè)數(shù)據(jù)庫的高級(jí)應(yīng)用,存儲(chǔ)過程相對(duì)專業(yè)些,但效率更高,而且使SQL的功能發(fā)揮的更強(qiáng)大,這僅是一個(gè)較簡單的存儲(chǔ)過程調(diào)用例子:
    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 // 設(shè)置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 // 添加過程調(diào)用所要用到的參數(shù)
    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 // 執(zhí)行命令
    45 mySqlCommand.ExecuteNonQuery();
    46 // 讀取輸出參數(shù)的值
    47 Console.WriteLine("New ProductID = " +
    48 mySqlCommand.Parameters["@MyProductID"].Value);
    49 mySqlConnection.Close();
    50 }
    51 }
    52}
    本代碼不包括數(shù)據(jù)庫的存儲(chǔ)過程實(shí)體,你可以自己手動(dòng)創(chuàng)建一個(gè)。