从SQL Server批量获取记录的最佳方法是什么

场景 :我们从SQL Server获取行到C#.Net控制台应用程序,并通过存储过程对从SQL Server检索到的数据执行操作; 执行操作后,使用C#-MongoDB-Driver将新数据存储到MongoDB中。 问题 :有数十亿行。 我的存储过程包含如下查询: select * from table_name 为了计算出一些批处理逻辑,没有标识列,也没有任何日期列等。 信息 :截至目前,应用程序正在获取最多3500 – 5000条记录并存储到MongoDB中,然后抛出错误,如下所示: System.Runtime.InteropServices.SEHException(0x80004005):外部组件抛出exception。 问题 :任何人都可以建议我从SQL Server批量读取/获取一些逻辑吗?

无对话框自动打印

我找到了打印代码。 但我想在没有对话框的情况下自动发送到打印机。 我知道printername。 我从SQL表中获取打印机名称。 我该怎么做 ? // select printer and get printer settings PrintDialog pd = new PrintDialog(); if (pd.ShowDialog() != true) return; // create a document FixedDocument document = new FixedDocument(); document.DocumentPaginator.PageSize = new Size(pd.PrintableAreaWidth, pd.PrintableAreaHeight); // create a page FixedPage page1 = new FixedPage(); page1.Width = document.DocumentPaginator.PageSize.Width; page1.Height = document.DocumentPaginator.PageSize.Height; // add some […]

NHibernate映射 – 一对一(或一对零)

NHibernatians! 我有一张桌子[dbo]。[Wibble]和另一张桌子[dbo]。[WibbleExtended]。 [Wibble]是主表,[WibbleExtended]是一个可选表,其中存储了一些其他字段。 [WibbleExtended]表中的条目远少于主[Wibble]表。 我认为这是在当天完成的,以解决一些空间问题(Wibble有很多行,而WibbleExtened有很多列)。 每个表的ID都是相同的,来自外部源。 即 [dbo].[Wibble].[WibbleId] 和 [dbo].[WibbleExtended].[WibbleId] 是相同的,这两个表是如何相关的。 NB我无法更改架构。 我把它变成了一个我几乎无法控制的遗留系统。 在它周围搜索似乎一对一映射是有问题的,并且流行的智慧是使用两个多对一映射。 我的映射目前是: 和 这个问题是我遇到了诸如此类的错误 System.IndexOutOfRangeException: Invalid index n for this SqlParameterCollection with Count=n. 我环顾四周,这看起来像是正确的策略,它只是落在最后的障碍。 问题是id生成器吗? 映射的其他方面? 正确答案的免费碎肉馅饼。 编辑:好的 – 这就是我通过@James Gregory解决这个问题的方法。 将unit testing从WibbleExtended测试移至Wibble测试类并进行必要的修改。 在Wibble.hbm.xml中添加了以下内容 为Wibble POCO添加了相应的属性。 删除了与WibbleExtended相关的所有代码。 运行测试,全部通过,签入。构建通过。 去了一个圣诞节啤酒(因此,在我更新这个之前已经过了几天!:-))

C#4.0’动态’关键字的优缺点?

我已经学习并检查了C#4中dynamic关键字的优点。 任何人都可以告诉我这个的缺点。 意味着dynamic vs Var / Object / reflection ??? 哪个更重要。 在运行时dynamic更强大?

WinSCP .NET程序集:在哪里定义代理?

我可以使用WinSCP GUI定义代理服务器。 如果我这样做,我可以连接到远程主机。 但在代码中我找不到为WinSCP声明代理服务器的方法。 在这种情况下,我收到了 远程服务器返回错误(407)需要代理身份validation。 我的代码: SessionOptions sessionOptions = new SessionOptions { Protocol = protocol, HostName = hostname, UserName = user, Password = pass, PortNumber = portnumber }; using (Session session = new Session()) { session.ExecutablePath = @”C:\Program Files (x86)\WinSCP\WinSCP.exe”; session.Open(sessionOptions); TransferOptions options = new TransferOptions(); options.FileMask = mask; SynchronizationResult synchronizationResult; synchronizationResult = session.SynchronizeDirectories(mode, […]

使用水晶报告导出为pdf文件

我在这里有代码示例,我可以直接保存为PDF文件,但我想要做的是显示客户端的第一个pdf文件,并允许用户保存它。 我该如何实现这一目标? ReportDocument rpt = new ReportDocument(); rpt.Load(@”C:\CrystalReport2.rpt”); rpt.SetDataSource(datatablesource); ExportOptions rptExportOption; DiskFileDestinationOptions rptFileDestOption = new DiskFileDestinationOptions(); PdfRtfWordFormatOptions rptFormatOption = new PdfRtfWordFormatOptions(); string reportFileName = @”C:\SampleReport.pdf”; rptFileDestOption.DiskFileName = reportFileName; rptExportOption = rpt.ExportOptions; { rptExportOption.ExportDestinationType = ExportDestinationType.DiskFile; //if we want to generate the report as PDF, change the ExportFormatType as “ExportFormatType.PortableDocFormat” //if we want to generate the […]

我可以使用JavascriptSerializer反序列化为不可变对象吗?

使用System.Web.Script.Serialization.JavaScriptSerializer 我可以以某种方式反序列化为不可变对象吗? public class Item { public Uri ImageUri { get;private set; } public string Name { get; private set; } public Uri ItemPage { get;private set; } public decimal Retail { get;private set; } public int? Stock { get; private set; } public decimal Price { get; private set; } public Item(Uri imageUri, string […]

如何在C#中检索couchbase数据库中的键/文档列表

我是沙发基地的新手。 这是我用于插入和获取文档的示例代码: using (var bucket = Cluster.OpenBucket()) { var document = new Document { Id = “Hello”, Content = new { name = “Couchbase” } }; var upsert = bucket.Upsert(document); if (upsert.Success) { var get = bucket.GetDocument(document.Id); document = get.Document; var msg = string.Format(“{0} {1}!”, document.Id, document.Content.name); Console.WriteLine(msg); } Console.Read(); } 但我不知道如何检索存储文件列表。

C#中两个对象之间的差异

我想知道如何找到同一类的两个对象之间的区别。 因此,如果我有一个Person类,唯一的区别是Age,它将返回不同的字段/字段。 谢谢

以编程方式更改WinForms WebBrowser控件的目标打印机

我正在尝试使用不可见的WebBrowser控件来打印一个非常简单的HTML文档。 我们的应用程序要求我们能够以这种方式打印多个文档,并且它们都可以发送到不同的打印机。 不幸的是,我没有非常成功地使输出转到正确的打印机。 它现在的工作方式是在打印文档之前,应用程序确定要接收哪个打印机,并相应地设置默认打印机。 为此,它使用从WinSpool.drv导入的SetDefaultPrinter()。 如果我在调试模式下执行代码,我可以清楚地看到默认打印机更改(并且此更改反映在控制面板UI中),但WebBrowser仍然坚持使用原始默认打印机。 从我所看到的MSDN文档并没有真正为这种情况提供解决方案。 我非常感谢有关如何以编程方式完成此操作的一些输入。