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}
本代码不包括数据库的存储过程实体,你可以自己手动创建一个。
更多信息请查看IT技术专栏