首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server函数中的System.Web

Server函数中的System.Web
EN

Database Administration用户
提问于 2019-10-28 14:06:06
回答 1查看 591关注 0票数 5

我已经对这个主题做了一些简单的研究,我想知道在Server中所有的专业人员和con是什么,还是启用/注册这个特定的.dll?

返回信息--我们正在与第三方应用程序集成(不幸的是,这不是我的决定),其中一些应用程序需要这个.dll,而另一些则是.dlls。我需要CLR函数的目的是能够用SSMS编写SQL查询,并将数据发送到第三方应用程序的API,然后该API将执行正确的数据加载/更改(必须通过它的API对该应用程序进行插入和删除)。

编辑-也许我应该包括这个细节

在尝试注册我的c#类时,我显然得到了一个错误:"system.web未注册的诸如此类的东西“,这反过来又促使了我对这个主题的研究。

结束编辑

因此,我的难题是,为了能够注册我的C#类/. all,我必须注册所有依赖的.all,但是根据我的研究,我知道这个特定的类可能会有相当大的问题。

因此,鉴于我对谷歌研究之外的陷阱并不十分熟悉,我想知道你们中是否有人能帮助我了解如何在这方面做出最好的决定。

此外,我还能在这篇文章中添加什么,这样才能更容易地提供洞察力呢?我不太确定C#代码是否相关?我知道这可能有点宽泛,但我希望它足够具体,不会被标记?

更具体地说明这里发生了什么(根据所罗门的要求)

  1. 第三方应用程序使用一个"API“(使用松散,因为我被告知它不是一个伟大的API)来来回发送数据。您会注意到它调用了一个只接受数据表或excel文件转换的导入函数。我没有其他选择,因为公司告诉我,通过普通XML插入和删除非常慢,而且有意想不到的行为。
  2. 引用System.Web的System.Web是在我的C#类中引用的,它首先需要能够发送数据。
  3. 关于:为什么你不能使用我提到的方法?它们已经存在于Server的CLR主机中。这是给web服务的,对吗?

我不确定我是否对API有足够的了解来回答这个问题。我非常能够而且只是缺乏这样做的知识和经验。这也可能是因为我对如何与这个特定API交互有限制,而且我不确定这些限制如何适用于这些方法。(我会进一步调查,看看能否亲自回答这个问题)。

尽管我越多地考虑这个问题,我就可以创建一个SQL Server可以调用的“中间”类,然后调用另一个类,这个类将拥有所有正确的引用,这可能会使我通过当前的情况。不过,我仍然对具体的反馈感兴趣,这样我才能从中吸取教训。

这是我的c#课程:

代码语言:javascript
复制
    using Perfion.Api;   -- this .DLL references System.Web. 
    using Perfion.Api.Import;
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading.Tasks;

    namespace PerfInsert
    {
        public static class PerfionInsert 
        {
            public static bool CreateCommand(string tblString, string featureName, string connectionString, string perfionConnectionString, string logFile)
            {
                StringBuilder logInfo = new StringBuilder();
                try
                {
                    var wList = new Regex(@"[^0-9a-z\.\[\]_]#", RegexOptions.IgnoreCase);
                    if (wList.IsMatch(tblString))
                    {
                        logInfo.AppendLine($"{DateTime.UtcNow} - Regex Validation Failed for Table Name!");
                        return false;
                    }
                    using (SqlConnection connection = new SqlConnection(connectionString))
                    {
                        var qryString = "SELECT * FROM " + tblString;
                        using (SqlCommand command = new SqlCommand(qryString, connection))
                        {
                            connection.Open();
                            using (var dataReader = command.ExecuteReader())
                            using (var dataTable = new DataTable())
                            {
                                dataTable.Load(dataReader);
                                PerfionApi api = new PerfionApi(perfionConnectionString);
                                Importer importer = new Importer(api.Connection);
                                importer.Status += (sender, e) => { logInfo.AppendLine($"{DateTime.UtcNow} - {e.Title}"); };
                                importer.LoadData(dataTable);
                                importer.ImportToDatabase(featureName);
                            }
                        }
                    }
                    return true;
                }
                catch (Exception ex)
                {
                    logInfo.AppendLine($"{DateTime.UtcNow} - {ex.ToString()}");
                }
                finally
                {
                    File.AppendAllText(logFile, logInfo.ToString());
                }
                return false;
            }
        }
    }
EN

回答 1

Database Administration用户

回答已采纳

发布于 2019-10-28 14:37:42

票数 7
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/252077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档