首页 新闻 会员 周边

Sql Server CLR创建程序集时报错,有大神知道该怎么搞么?

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-10-19 16:27

在C#的一个类库项目中写了一个供sql中使用的存储过程:

[SqlProcedure]
public static string GetPartnerList(string logincode)
{
        string action = MemberApiUrl("api/Member/GetPartnerList");
        NameValueCollection param = new NameValueCollection();
        param.Add("logincode", JsonConvert.SerializeObject(logincode));
        PartnerListModel partner = PostWebRequest<PartnerListModel>(action, param);

        return JsonConvert.SerializeObject(partner);
}

public static T PostWebRequest<T>(string url, NameValueCollection parameters)
{
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "post";
        request.ContentType = "application/x-www-form-urlencoded";
        try
       {

          StringBuilder param = new StringBuilder();

             foreach (string key in parameters.Keys)
            {
                   if (param.Length > 0)
                   param.Append("&");
                   param.AppendFormat("{0}={1}", key, parameters[key]);
            }    

            byte[] data = Encoding.GetEncoding("utf-8").GetBytes(param.ToString());
            Stream reqstream = request.GetRequestStream();
            reqstream.Write(data, 0, data.Length);
            reqstream.Close();    

            Stream respStream = request.GetResponse().GetResponseStream();
            string resp = new StreamReader(respStream, Encoding.GetEncoding("utf-      8")).ReadToEnd();
            return JsonConvert.DeserializeObject<T>(resp);    

      }
      catch
     {
             return default(T);
      }
}

 

public static string MemberApiUrl(string url)
{
        string host = ConfigurationManager.AppSettings["Domain"].Trim();
        if (host.EndsWith("/") && url.StartsWith("/"))
              return string.Format("{0}{1}", host.Substring(0, host.Length - 1), url);

        else if (!host.EndsWith("/") && !url.StartsWith("/"))
              return string.Format("{0}/{1}", host, url);
        else
              return string.Format("{0}{1}", host, url);
}

 

 

编译生成dll后创建程序集:

CREATE ASSEMBLY GetPartnerList FROM 'F:\SqlCLR\CM.Order\CM.Order.SqlServerCLR\bin\Release\CM.Order.SqlServerCLR.dll' WITH PERMISSION_SET = SAFE

提示错误:

程序集 'CM.Order.SqlServerCLR' 所引用的程序集 'system.runtime.serialization, version=3.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089.' 不在当前数据库中。SQL Server 已尝试定位并自动从引用程序集所在的位置自动加载被引用程序集,但此操作失败(原因: 2(系统找不到指定的文件。))。请将被引用程序集加载到当前数据库中,然后重试您的请求。

波仔Robert的主页 波仔Robert | 初学一级 | 园豆:165
提问于:2016-10-14 15:09
< >
分享
所有回答(2)
0

添加引用啊

愤青愤青 | 园豆:4 (初学一级) | 2016-10-14 15:27

生成dll的时候没有报错啊,添加啥dll?  添加到数据库中?  如何添加呢?

支持(0) 反对(0) 波仔Robert | 园豆:165 (初学一级) | 2016-10-14 15:28

@波仔Robert: system.runtime.serialization添加引用

支持(0) 反对(0) 愤青愤青 | 园豆:4 (初学一级) | 2016-10-14 15:30

静态库和动态库

支持(0) 反对(0) 愤青愤青 | 园豆:4 (初学一级) | 2016-10-14 15:30

@愤青愤青: 

using System.IO;
using Newtonsoft.Json;
using System.Configuration;
using System.Runtime.Serialization;

我在这个类库里面加上这个也没用啊,加不加都不会报错,都可以生成dll,不是很清楚加哪儿,如何加

支持(0) 反对(0) 波仔Robert | 园豆:165 (初学一级) | 2016-10-14 15:32

@愤青愤青: 可否进一步指点下,大神,要不qq,我的453176292?

支持(0) 反对(0) 波仔Robert | 园豆:165 (初学一级) | 2016-10-14 15:36

@波仔Robert: 你这个是不是 调用类库 然后在调用 数据库了 

类库里面加引用了么?

支持(0) 反对(0) 愤青愤青 | 园豆:4 (初学一级) | 2016-10-14 15:37

@愤青愤青: 是的,只有里面有个一用post的方式去调用webapi的一个接口方法,我想把webapi中的数据返回回来,访问数据库是在webapi中访问的,类库里面要加那个dll?生成时没有报错啊? 代码写完了,编译生成都没问题,创建数据集时就报这个错,看提示说让在数据库中添加这个程序集,如何添加到数据库中去哦

支持(0) 反对(0) 波仔Robert | 园豆:165 (初学一级) | 2016-10-14 15:40
0

我新建数据库项目就可以了,不知道为啥类库项目不行

波仔Robert | 园豆:165 (初学一级) | 2016-10-19 16:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册