从cs文件连接到sql时出错。我试图在c#中创建CLR函数,而不使用任何IDE。我需要访问数据库才能获得一些价值。以下是用c#连接到我的数据库的代码。
using (SqlConnection conn = new SqlConnection("context connection=true"))
{
conn.Open();
SqlCommand cmd = new SqlCommand(
"SELECT COUNT(*) AS 'Order Count' FROM customer_master with (nolock)", conn);
SqlContext.Pipe.ExecuteAndSend(cmd);
return (int)cmd.ExecuteScalar();
}
但是我收到以下错误:
“请求的操作需要SqlClr上下文,该上下文仅在Sql Server进程中运行时可用”。如果我使用管道我不知道如何将其转换为int值。任何建议请....
答案 0 :(得分:1)
根据this Blog帖子,尝试这样,SQLConnection
不在使用中。 SQLCommand
是Disposable,应该在使用中。
SqlConnection conn = new SqlConnection("context connection=true") ;
using(SqlCommand cmd = new SqlCommand(
"SELECT COUNT(*) AS 'Order Count' FROM customer_master with (nolock)", conn))
{
conn.Open();
return (int)cmd.ExecuteScalar();
}
我先写了下面的内容,但我认为以上就是答案,如果相关,我会离开。
ContextConnection
是调用CLR函数的SQL正在使用的现有开放连接的连接。
要使用带有ContextConnection
的SQL CLR函数,必须从SQL语句中调用它。 击>
e.g。 (其中CLRConvert
是我的CLR函数,它连接回我的数据库并执行查询并转换内容。)
select dbo.CLRConvert(Data) from MyTables;
如果您需要在此处之外拨打电话,则需要正确的connection string。
击><击> 撞击>