Tag: import

在C#中导入C dll,如何转换短**类型

我想在C#中导入一个用C语言编写的dll。 以下是我要调用的函数的格式。 /* *ReadAnswer *@param objectID The answer object ID *@param answerBuf The answer buffer.This buffer is automatically allocated by the function. It is automatically recycled with each call. A call to this function with an empty answer or a new request will automatically free the allocated buffer. *@param answerBufferSize The answer buffer size.This function […]

从大文本文件导入数据库时​​获取SystemOutOfMemoryException的方法

我们正在使用ZyWall来保护我们的服务器免受外部入侵。 它生成每日日志文件,大小超过GB,有时为2 GB。 它们通常包含超过1000万行。 现在我的任务是编写一个将这些行导入Oracle数据库的应用程序。 我是用C#编写的。 我目前正在做的是: 我逐行阅读日志文件。 我不立刻加载整个文件: 使用(StreamReader reader = new StreamReader(“C:\ ZyWall.log”)){while((line = reader.ReadLine())!= null)……} 每行阅读我根据其中的逗号将行分成几部分。 string [] lines = line.Split(new Char [] {‘,’},10); 然后我遍历lines数组,为预定义的DataTable对象创建一个新Row,并将数组值分配给该行中的列。 然后我将行添加到数据表中。 在读取所有行到数据表之后,我使用OracleBulkCopy将数据写入数据库中具有相同结构的物理表。 但问题是,当我将行添加到Datatable对象时,我得到SystemOutOfMemoryException,这是第3步。 如果我注释掉第3步然后在任务管理器中我看到应用程序消耗了大约17000 K的稳定内存量但是如果我取消注释该步骤,则内存使用量会增长,除非没有足够的内存来分配。 还有一种方法可以使用BulkCopy来执行此操作,还是我必须手动执行此操作? 我使用BulkCopy因为它比逐行插入行更快。

将CSV文件复制到MS Access Table

使用C#我正在尝试创建一个从特定文件夹位置读取CSV文件的控制台应用程序,并将这些记录导入MS Access Table。 一旦成功导入文件中的记录,我将删除.csv文件。 到目前为止,这就是我所拥有的: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Configuration; using System.Data; using System.Data.OleDb; using System.Globalization; namespace QuantumTester { class Program { static void Main(string[] args) { CsvFileToDatatable(ConfigurationManager.AppSettings[“CSVFile”], true); } public static DataTable CsvFileToDatatable(string path, bool IsFirstRowHeader)//here Path is root of file and IsFirstRowHeader is header is there […]

最快将csv导入数据库表

我已经实现了一个导入function,它从Asp.Net应用程序中的csv文件中获取数据。 大小的文件可以从几kb到最大10 MB不等。 但是,当导入发生时,如果文件大小> 50000,则大约需要20分钟。 这太过分了。 我需要在2-3分钟的时间内执行大约300000条记录的导入。 我知道导入到数据库还取决于数据库服务器的物理内存。我将批量创建插入脚本并执行。 我也知道使用SqlBulkCopy也是另一种选择,但在我的情况下,它不是插入产品的发生,而是更新和删除这是一个名为“FUNCTION CODE”的字段,决定是否插入,更新或删除。 关于如何解决这个问题的任何建议将不胜感激。 实现这一目标的一种方法是实现同时执行进程的多个线程,但我从未实现过直到日期的线程,因此我不知道通过实现相同的复杂性。 感谢和问候,弗朗西斯P.

可以在C#中缩短数学参考吗?

在VB.NET中,我可以通过导入System.Math并直接引用其方法来使我的数学代码更加清晰: Imports System.Math […] Return New Vector3(Sin(az) * Cos(el), Cos(az) * Cos(el), Sin(el)) 但是我不认为C#可以使用类来隐式访问它们的方法,所以我必须做类似的事情: using System; […] return new Vector3(Math.Sin(az) * Math.Cos(el), Math.Cos(az) * Math.Cos(el), Math.Sin(el)); 但那很难看; 它需要自己的滚动条! 有没有办法在C#中编写一些看起来像我的VB.NET代码的东西? 我可以为Sin和Cos编写局部包装器方法,但这不会降低性能(因为函数调用的开销)? 而且,这需要为我正在使用的每个类中使用的每个Math函数编写包装函数; 这也不是那么令人满意。

我如何在c#中使用c ++ dll

我喜欢在我的c#应用程序中导入c ++ dll我怎么能这样做?我需要使用什么概念呢?

如何在WPF应用程序中动态导入3D模型

我一直在搜索这段时间,但找不到合适的方法。 如何在用户选择模型时在运行时在WPF应用程序中导入3D模型。 它可以在任何一个流行的3D建模软件,3DS max,Maya,Blender等中构建,而不是全部。 需要导入任何一种格式.3DS,.MAX,.FBX,.obj等。 如果有可用的免费库,请提及它们,如果我必须自己编写代码,请指导如何以及从何处开始。

MS Access互操作 – 数据导入

我正在使用exe来将SQL导出到Access,我们不想使用DTS,因为我们有多个客户端,每个客户端都导出不同的视图,并且设置和维护DTS包的开销太大。 *编辑:这个过程每晚都为许多客户自动化,因此整个过程必须在存储过程中的游标内启动和控制。 这是因为必须按导出的每个项目过滤数据。 我已经尝试了很多方法将数据从SQL中导入Access,最有希望的是使用Access互操作并运行 doCmd.TransferDatabase(Access.AcDataTransferType.acImport… 我遇到了一个问题,我从视图导入,并手动运行导入,似乎视图没有开始足够快地返回数据,因此访问弹出一个MessageBox对话框,说它已超时。 我认为这也发生在互操作中,但因为它是隐藏的,所以方法永远不会返回! 有什么方法可以阻止弹出这个消息,或者增加导入命令的超时时间? 我目前的攻击计划是将视图展平为一个表,然后从该表导入,然后删除展平的表。 很高兴有任何建议如何解决这个问题。 编辑: 关于我在做什么的进一步信息: 我们有多个客户,每个客户都有一个标准的数据模型。 其中一个“模块”是访问导出器(sproc)。 它读取要从参数表导出然后导出的视图。 视图按项目过滤,并为每个项目创建一个访问文件(每个视图都有项目字段) 我们正在运行SQL 2005并且没有快速转向SQL 2005,我们可能会在几个月后跳到2008年。 然后我们有一个模块执行作业,它在每个数据库上执行配置的模块。 在此模块执行中有许多导入/导出/其他作业,并且访问导出器必须能够适合此框架。 所以我需要一个通用的SQL – > Access导出器,可以通过我们的参数框架进行配置。 目前sproc调用我写的exe,我的exe通过interop打开访问,我知道这对服务器不好但是模块执行被写入所以一次只执行一个模块,所以程序永远不会运行更多一次只有一个例子。

在没有标题的C#Windows应用程序中将csv文件导入SQL Server数据库

我试图将.csv文件导入没有标题的SQL Server数据库。 这段代码工作正常,但有标题 – 如何跳过标题? 我需要更改代码以忽略.csv文件中的标头? 谢谢你们。 CSV文件格式: 001,0000002226,01,2011/03/27,07:07, 001,0000009392,01,2011/03/27,07:12, 001,0000002220,01,2011/03/27,07:17, 001,0000002121,01,2011/03/27,07:19, C#代码: private void btnBrowse_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.DefaultExt = “.csv”; ofd.Filter = “Comma Separated (*.csv)|*.csv” ; ofd.ShowDialog(); txtFileName.Text = ofd.FileName; } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } private void btnimport_Click(object sender, EventArgs e) { […]

如何在C中使用tlb文件?

tlb文件(使用regasm)是由dll(使用c#代码)制作的,我可以使用#import在c ++中使用它。 一切都很好。 有没有办法,我可以在C语言中使用它吗? 我刚发现#import是c ++特有的。 那么,有人可以告诉我如何在我的C程序中使用它? 我的主要目的是在我的C程序中使用C#开发的COM DLL。 谢谢&Rgds,~calvin