小编mer*_*kel的帖子

如何从SSIS包中禁用交互式消息框?

我正在命令行上执行SSIS包dtexec.exe.包调用MessageBox.Show()MsgBox()(分别为C#和VB.NET)显示错误.这些盒子挂着自动作业处理器,因为它正在等待盒子关闭.

的印象是,当不处于交互模式时,应该隐藏这些框.可以在不修改SSIS包的情况下抑制消息框吗?该软件包来自软件供应商,我真的不应该改变它.

编辑:我正在使用的完整命令(编辑删除详细信息)

C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /F D:\Path\To\Package.dtsx /Conn DBConnection;"Provider=SQLOLEDB;Data Source=SERVER;Initial Catalog=DB;Integrated Security=SSPI;Connect Timeout=60" \Package.Variables[User::InputFileName].Properties[Value];C:\Path\To\Input.csv
Run Code Online (Sandbox Code Playgroud)

EDIT2:消息框代码示例.这是一个脚本任务.

Public Sub Main()
    MsgBox("Failed to read/parse input file or generic database failure while running " + Dts.Variables("System::PackageName").Value.ToString() + ". Please check the layout of the feed and database connectivity.")
    Dts.TaskResult = ScriptResults.Failure
End Sub
Run Code Online (Sandbox Code Playgroud)

编辑3:如果将来有人对测试InteractiveMode的代码感兴趣.它也必须通过Script Task的ReadOnlyVariables传入.我最后修改了包,因为还有其他问题.

VB.NET
If CBool(Dts.Variables("System::InteractiveMode").Value) = True Then
    ....
End if

C#
if ((bool)Dts.Variables["System::InteractiveMode"].Value == true)
    ....
}
Run Code Online (Sandbox Code Playgroud)

ssis batch-file

5
推荐指数
1
解决办法
1542
查看次数

使用XDocument将不同类型的多个对象序列化为单个XML

我试图使用XDocument作为基础将对象列表序列化为XML.这样做的目的是在WCF服务中记录请求数据.

我的问题是如何获取对象的变量列表并将它们转换为XDocument?我能找到的所有示例都是如何为单个对象执行此操作,而不是为不同复杂类型的多个对象执行此操作.

我想要的输出是这样的:

<rootElementName>
    <CustomObjectType1>
        <SubData1>Test</SubData1>
        <SubData2>2014-12-22T16:33:00</SubData2>
    </CustomObjectType1>
    <CustomObjectType2>
        <SubData3>123456</SubDataType2>
    </CustomObjectType2>
</rootElementName>
Run Code Online (Sandbox Code Playgroud)

最初我从其他Stackoverflow示例中将它拼凑在一起,但我想使用XDocument.

private static XmlDocument CreateXmlFromObjects(string rootElementName, params object[] inputs)
{
    var doc = new XmlDocument();
    var root = doc.AppendChild(doc.CreateElement(rootElementName));

    doc.DocumentElement.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
    doc.DocumentElement.SetAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");

    foreach(var input in inputs)
    {
        SerializeAppend(doc, input);
    }

    return doc;
}

private static void SerializeAppend(XmlNode parentNode, object obj)
{
    XPathNavigator nav = parentNode.CreateNavigator();
    using (var writer = nav.AppendChild())
    {
        var serializer = new XmlSerializer(obj.GetType());
        writer.WriteWhitespace("");
        serializer.Serialize(writer, obj);
        writer.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用此处此处的代码示例,但是遇到了错误. …

c# xml xml-serialization linq-to-xml

4
推荐指数
1
解决办法
2877
查看次数

实体框架和全词匹配 - 分页和过滤结果

背景

我在网站上使用 ASP.NET MVC4、SQL Server 2008 R2 和 Entity Framework 5。

该站点接受一个分隔的关键字列表来搜索数据库内容。它还需要将结果分页给用户(目前每页 100 个结果)。

这一直进行得很顺利,直到要求关键字搜索不是通过部分匹配来完成,而是通过全词匹配来完成。

问题

在我已经有了结果之后执行整个单词匹配意味着我可能没有query.Pagesize结果要显示 - 这会弄乱 UI 分页。在第一页上来自 SQL Server 的 100 个部分匹配项中,20 个可能会随着整个文字处理而被删除。

我目前正在使用 LINQ 构建查询并对关键字进行 AND 搜索,如下所示:

// Start with all the MyItems
var results = UnitOfWork.MyItemRepository.GetAll();

// Loop the keywords to AND them together
foreach(var keyword in query.Keywords)
{
    var keywordCopy = keyword;

    // Look for a hit on the keyword in the MyItem
    results = results.Where(x => x.Title.Contains(keywordCopy));
}
Run Code Online (Sandbox Code Playgroud)

稍后获取结果总数、分页和执行查询: …

c# sql sql-server asp.net-mvc entity-framework

3
推荐指数
1
解决办法
1731
查看次数