从上下文中调用CLR存储过程

时间:2013-12-17 02:57:37

标签: sql sql-server-2008 stored-procedures clr sqlclr

这是我的外部程序:

using (SqlConnection con = new SqlConnection("context conection=true"))
{
  SqlCommand cmd = new SqlCommand();
  cmd.Connection = con;
  if (con.State == ConnectionState.Closed)
  {
    con.Open();
  }
  cmd.CommandText = "INSERT ...";
  ...

  cmd.ExecuteNonQuery();
  cmd.Dispose();
  con.Close();
}

我添加了一个程序集,并执行以下步骤:

Create Proc usp_SaveFinanicalYear
(
  ... params
)
AS
  EXTERNAL NAME SqlLibrary.StoreProcedures.SaveFinanicalYear

当我调用此过程时,我收到以下错误(screen shot):

  

在执行用户定义的例程或聚合“usp_SaveFinanicalYear”期间发生.NET Framework错误:   
System.ArgumentException:不支持关键字:'context conection'。

1 个答案:

答案 0 :(得分:4)

你需要拼写connection。有两个n s。

using (SqlConnection con = new SqlConnection("context connection=true"))
                               //------------------------^

在任何情况下,您都不应该对简单的INSERT使用CLR过程。恕我直言。这就像雇用自卸卡车去买杂货一样。