标签:http io os ar 使用 strong sp 数据 div
http://support2.microsoft.com/kb/310130/zh-cn
此分步指导文章描述如何使用 ODBC .NET 托管提供程序和 Visual C# .Net 调用参数化 SQL Server 存储过程。
尽管使用 ODBC .NET 提供程序执行参数化存储过程与使用 SQL 或 OLE DB 提供程序执行同一存储过程差别不大,但一个重要的差别是:存储过程必须使用 ODBC CALL 语法进行调用,而不能使用存储过程的名称。有关此 CALL 语法的其他信息,请参见 MSDN 库中 ODBC Programmer‘s Reference(ODBC 程序员参考)中的"Procedure Calls"(过程调用)主题。
{CALL CustOrderHist (?)}
{? = CALL Procedure1 (?, ?)
using System.Data; using Microsoft.Data.Odbc;
OdbcConnection cn;
OdbcCommand cmd;
OdbcParameter prm;
OdbcDataReader dr;
try{
//Change the connection string to use your SQL Server.
cn = new OdbcConnection("Driver={SQL Server};Server=servername;Database=Northwind;Trusted_Connection=Yes");
//Use ODBC call syntax.
cmd = new OdbcCommand("{call CustOrderHist (?)}", cn);
prm = cmd.Parameters.Add("@CustomerID", OdbcType.Char, 5);
prm.Value = "ALFKI";
cn.Open();
dr = cmd.ExecuteReader();
//List each product.
while (dr.Read())
Console.WriteLine(dr.GetString(0));
//Clean up.
dr.Close();
cn.Close();
}
catch (OdbcException o) {
MessageBox.Show(o.Message.ToString());
}
CREATE PROCEDURE usp_TestParameters @CustID CHAR(5), @AvgFreight MONEY OUTPUT AS SELECT @AvgFreight = AVG(Freight) FROM Orders WHERE CustomerID = @CustID SELECT * FROM Orders WHERE CustomerID = @CustID RETURN @@ROWCOUNT
OdbcConnection cn;
try{
cn = new OdbcConnection("Driver={SQL Server};Server=servername;Database=Northwind;Trusted_Connection=Yes");
OdbcCommand cmd = new OdbcCommand("{? = call usp_TestParameters (?, ?)}", cn);
OdbcParameter prm = cmd.Parameters.Add("@RETURN_VALUE", OdbcType.Int);
prm.Direction = ParameterDirection.ReturnValue;
prm = cmd.Parameters.Add("@CustomerID", OdbcType.Char, 5);
prm.Value = "ALFKI";
prm = cmd.Parameters.Add("@AvgFreight", OdbcType.Double);
prm.Direction = ParameterDirection.Output;
cn.Open();
OdbcDataReader dr = cmd.ExecuteReader();
while (dr.Read())
Console.WriteLine(dr.GetString(0));
dr.Close();
cn.Close();
Console.WriteLine("Average Freight (output param):{0}", cmd.Parameters[2].Value);
Console.WriteLine("Order Count (return value):{0}", cmd.Parameters[0].Value);
}
catch (OdbcException o) {
MessageBox.Show(o.Message.ToString());
}
使用 ODBC .NET 提供程序和 Visual C# .NET 执行 SQL 参数化存储过程
标签:http io os ar 使用 strong sp 数据 div
原文地址:http://www.cnblogs.com/tylertang/p/4039877.html