Tag: datatable

如何使用来自其他来源的数据更新SQL Server表(DataTable)

我有一个从.xls表生成的DataTable 。 我想将此DataTable存储到SQL Server数据库中的现有表中。 我使用SqlBulkCopy来存储具有唯一PK的行。 问题是,我还有其他行与SQL Server表具有相同的PK ,但包含与 SQL Server表相比具有不同值的单元格 。 简而言之: 让我们在我的DataTable说我有这样一行: id(PK)| 名字| 数 005 | abc | 123 006 | lge | 122 对于我的SQL服务器,我有这样的想法; id(PK)| 名字| 数 004 | cbs | 345 005 | lks | 122 现在您可以看到行006可以使用SqlBulkCopy直接上传到SQL Server。 另一方面,由于SQL服务器表包含具有相同PK的行,因此无法使用它插入行005 。 现在我尝试手动提取行。 将每个单个单元格提取到ArrayList中,然后生成UPDATE Table语句。 但是这个方法似乎不可行,因为我要处理这么多行。 我正在寻找一种更好的方法来实现这一目标。 任何帮助表示赞赏。 谢谢

为什么我的数据表行中没有更新值?

我有这个代码 foreach (DataRow row in dt.Rows) { Debug.WriteLine(“Start of Row”); for (int i = 0; i < row.ItemArray.Length; i++) { string val = row.ItemArray[i].ToString(); row.ItemArray[i] = "My New Value"; Debug.WriteLine("val: {0}, new: {1}", val, row.ItemArray[i].ToString()); } } 但价值永远不会更新。 我不知道为什么。 Start of Row val: 2/02/2012, new: 2/02/2012 val: ac, new: ac val: ac, new: ac val: […]

使用linq和c#查询数据表

我查看了很多站点,但我无法理解如何使用linq查询数据表的前几行。 我还想知道如果数据来自Excel文件,那么列引用是否相同? 例如,列F in in在数据表或编号的引用中是相同的?

从大文本文件导入数据库时​​获取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因为它比逐行插入行更快。

查询DataSet

我正在将XML文件中的数据读入强类型DataSet 。 数据最终存在于多个表中; 我可以对它运行查询以创建一个非规范化视图以显示在DataGrid吗? 样本输入: 123 Some Street Anytown Jane Doe John Doe 456 Tree Street Westwood Mary Jones-Smith Mike Smith Kate Smith 期望的输出: 123 Some Street Anytown Jane Doe 123 Some Street Anytown John Doe 456 Tree Street Westwood Mary Jones-Smith 456 Tree Street Westwood Mike Smith 456 Tree Street Westwood Kate Smith 编辑:我应该补充一点,除了每个文件有多个表,我的真实数据也分成多个文件,AFAIK需要将这些文件加载​​到单独的DataSets集中。

如何在DataTable列中添加前导零

我试图在长度小于6位的情况下在数据表列值前添加零。 例如:我在数据表中有一个列“SRNumber”,其值为123,2345,56,3452等,并希望得到我的结果,如000123,002345,000056,034523。 注意:我想操纵Datatable中的数据,而不是在sql查询中检索数据。 我已经看到了我们可以将前导零添加到字符串或变量的解决方案,但在mycase中我想为数据表列中的所有值执行此操作。

LinQ和DataTable Group在C#中的问题

我有一个DataTable并存储4列(StockCardCode,Explain,Quantity,BranchCode),并使用LinQ对它们进行分组。 代码是我使用Group By的关键。 当我编写查询时,我只能在select语句中使用2列,如何在此查询中显示所有列? 这个查询返回2列。 例如,我无法在查询中使用x.Field(“Explain”)。 var query = from s in incoming.AsEnumerable() group s by s.Field(“Stock Card Code”) into grp orderby grp.Key select new { StockCardCode = grp.Key, Quantity = grp.Sum(r => r.Field(“Quantity”)) }; 传入:DataTable

将所选数据从DataTable复制到另一个DataTable

我想从数据表中选择一些数据并将其复制到另一个数据表中。 我在一个问题中找到了答案 – 如何查询内存中的DataTable以填充另一个数据表 DataTable table = GetDataTableResults(); DataTable results = table.Select(“SomeIntColumn > 0”).CopyToDataTable(); 此代码不起作用并导致错误 – ‘System.Array’ does not contain a definition for ‘CopyToDataTable’ and no extension method ‘CopyToDataTable’ accepting a first argument of type ‘System.Array’ could be found (are you missing a using directive or an assembly reference?) 我正在使用visual studio 2008和.net 3.5。

具有Parent和Child到JSON格式的数据表

我正在尝试从C#datatable构建JSON输出。 单个数据表也包含父级和子级。 我想使用LINQ来设置JSON数据,但是我想避免创建类,因为我有很多这样的要求,并且为每个创建类将是一个负担。 JSON输出应该是 { Sports : [ {item: ‘Porsche 911’, quantity: 100}, {item: ‘Porsche 912’, quantity: 200} ], Luxury : [ {item: ‘BMW 3 Series’, quantity: 300} ], Small :[ {item: ‘Toyota Corolla’, quantity: 400}, {item: ‘Mitsubishi Lancer’, quantity: 500}, {item: ‘Mitsubishi Lancer 2’, quantity: 600} ]} 我试过的示例代码 //get current stock DataTable dtCurrentStock = […]

根据列名列表将数据表拆分为多个数据表

我有一个看起来像以下的数据表 ID Country Supplier 515 DE A 515 CH A 515 FR A 516 DE B 516 FR B 517 DE C 517 IT C 我有一个List ,它包含动态数量的列名,例如,如果列表包含一个列: Supplier 我想从这个表生成一个List或一个DataSet,并根据该列表中的列名分离表,所以在这种情况下我只与Supplier列分开,结果将是3个DataTables,如下所示 ———-table 1——– 515 DE A 515 CH A 515 FR A ———-table 2——– 516 DE B 516 FR B ———-table 3——– 517 DE C 517 IT […]