标签: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