调用CLR存储过程

简而言之,在哪里可以找到C#/ VB客户端示例代码,它使用某些argumnet [如sqlxml数据]调用CLR存储过程并接收datareader或其他forms的结果?

另外,我如何定期从通过SQlContext.Pipe.Send()方法发送的正在运行的CLR存储过程中接收信息?

// run a stored procedure that takes a parameter public void RunStoredProcParams() { SqlConnection conn = null; SqlDataReader rdr = null; // typically obtained from user // input, but we take a short cut string custId = "FURIB"; Console.WriteLine("\nCustomer Order History:\n"); try { // create and open a connection object conn = new SqlConnection("Server=(local);DataBase=Northwind;Integrated Security=SSPI"); conn.Open(); // 1. create a command object identifying // the stored procedure SqlCommand cmd = new SqlCommand( "dbo.CustOrderHist", conn); // 2. set the command object so it knows // to execute a stored procedure cmd.CommandType = CommandType.StoredProcedure; // 3. add parameter to command, which // will be passed to the stored procedure cmd.Parameters.Add( new SqlParameter("@CustomerID", custId)); // execute the command rdr = cmd.ExecuteReader(); // iterate through results, printing each to console while (rdr.Read()) { Console.WriteLine( "Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]); } } finally { if (conn != null) { conn.Close(); } if (rdr != null) { rdr.Close(); } } } } enter code here 
 string connectionString = ConfigurationManager.AppSettings["ConnectDB"]; SqlConnection sn = new SqlConnection(connectionString); SqlParameter[] sqlParameters = new SqlParameter[1]; sn.Open(); SqlCommand dCmd = new SqlCommand("dbo.HelloWorld", sn); dCmd.CommandType = CommandType.StoredProcedure; SqlDataReader rdr = null; rdr = dCmd.ExecuteReader(); while (rdr.Read()) { for (int i = 0; i < rdr.FieldCount; i++) Response.Write(rdr[i]); } sn.Close(); } 

就像你调用普通的stroed程序一样。 也许…

 EXEC StoredProcedure1 

我写了很久的博客 – 编写你的第一个SQL Server CLR存储过程

我知道我通常创建一个常规的T-SQL存储过程来调用我的CLR函数或存储过程。 然后就像所有其他存储过程一样对待它们。

  // Create a record object that represents an individual row, including it's metadata. SqlDataRecord record = new SqlDataRecord(new SqlMetaData("stringcol", SqlDbType.NVarChar, 128)); // Populate the record. record.SetSqlString(0,( "Hello World!" + System.DateTime.Now)); // Send the record to the client. SqlContext.Pipe.Send(record);