Tag: datatable

“无法通过行访问”已删除的行信息“尝试从我的数据表中删除未使用的行

我正在抓取数据,将其粘贴到DataTable ,并将其显示在绑定到该表的DataGridView中。 我试图这样做,以便删除当前抓取中未包含的数据表中的数据。 我这样做如下: public void FillTable(DataTable table, IEnumerable readings) { var currentReadingsNames = new List(); var lastParent = string.Empty; var index = 0; foreach (var reading in readings) { if (reading.ParentName != lastParent) { lastParent = reading.ParentName; index = 0; } LoadRow(table, reading, index++); currentReadingsNames.Add(MakeKey(reading)); } //Iterate through the rows in our data table. […]

c #datagridview红叉

我有一个datagridview和datatable。 我使用datatable作为datagridview的数据源。 我使用如下的线程添加和更新数据。 如果我完成了数据,我将其删除。 但两次在datagridview前面有一个大的红色x 。 我找不到原因? 以下是我的样本。 注意:这并不总是发生,我只有两次这个错误,但我需要处理! 提前致谢。 Thread listData; DataTable dt = new DataTable(); Form1_load() { dataGridview.DataSource = dt; } public void ListData() { foreach(var item in data) { if(item.delete) { var row = dt.Rows.Find(item.id); if(row != null) { row.Delete();} continue; } listData = new Thread(delegate() { InsertOrUpdateData(item.Id); }); listData.Start(); listData.Join(); } […]

将匿名类型转换为DataTable

将匿名类型转换为DataTable的最快方法是什么? 更新:我想从匿名类型获取并填充DataTable。 如果reflection是必要的,我怎么能用reflection来做呢?

IEnumerable为DataTable性能问题

我有以下扩展,它从IEnumerable生成一个DataTable : public static DataTable AsDataTable(this IEnumerable enumerable) { DataTable table = new DataTable(); T first = enumerable.FirstOrDefault(); if (first == null) return table; PropertyInfo[] properties = first.GetType().GetProperties(); foreach (PropertyInfo pi in properties) table.Columns.Add(pi.Name, pi.PropertyType); foreach (T t in enumerable) { DataRow row = table.NewRow(); foreach (PropertyInfo pi in properties) row[pi.Name] = t.GetType().InvokeMember(pi.Name, BindingFlags.GetProperty, null, […]

DataTable选择具有多个AND条件的实现

我有一个大约有50,000行的DataTable,我正在使用DataTable.Select从中检索行。 Select需要多个AND条件,包括通配符匹配。 我玩过,发现通过多步执行相同的Select ,可以大大减少执行时间,但更改AND语句的顺序不会影响它。 //This takes ~ 750 ms DataRow[] results = myDataTable.Select(“Field1 LIKE ‘*” + term1 + “*'” + “AND Field2 = ‘” + term2 + “‘” + “AND Field3 = ‘” + term3 + “‘”); //This also takes ~750 ms DataRow[] results2 = myDataTable.Select(“Field3 = ‘” + term3 + “‘” + “AND Field2 […]

如何在C#中的DataTable.Rows.Count上创建n对象?

以下所有代码仅用于创建两个进程。 虽然我需要创建n进程来打开Chrome浏览器并基于dtUser.Rows.Count运行OpenNRowsInData(user, pwd) ,因为这是动态的。 我不知道为什么OpenNRowsInData(user, pwd); 总是只获得第一行。 我有一个1-7行的DataTable范围。 通常,我通常用来创建两个对象。 static myObject[] browser = new myObject[] { new myObject(Browsers.Chrome, 0), new myObject(Browsers.Chrome, 0) }; Thread t1, t2; t1 = new Thread(new ThreadStart(AllCase)) { Name = “Thread1” }; t1.Start(); t2 = new Thread(new ThreadStart(AllCase)) { Name = “Thread2” }; t2.Start(); 在AllCase类中: static int[] stepRun = { 0, […]

过滤DataTable中的空字符串

如何过滤DataTable中的空字符串? 我需要过滤一个列(比如名称为string.Empty的Customer Name) 我试过这个,但我不能正确的方式.. 我需要通过DataView.RowFilter过滤DataView.RowFilter ..所以如何为string.Empty提供过滤字符串.. 对此有何想法?

无法序列化DataTable。 未设置DataTable名称

我需要将所有数据表导出到单个XML文件,并且由于System.OutOfMemoryException(如果有一个巨大的表),我无法一次性导出所有行。 所以我试图导出N行。 但是,如果我在查询中使用分页语法,则WriteXml会抛出exception。 我在LINQPad中测试了两个查询,它们没问题。 System.InvalidOperationException:无法序列化DataTable。 未设置DataTable名称。 // The first query causes exception string oraQueryGetTableData = “SELECT * FROM (SELECT t0.* FROM MY_TABLE t0) WHERE ROWNUM <= 100"; // The second query runs without any error //oraQueryGetTableData = "SELECT * FROM MY_TABLE"; OracleCommand oraCommandGetTableData = new OracleCommand(oraQueryGetTableData, oraConnection); OracleDataReader oraReaderTableData = oraCommandGetTableData.ExecuteReader(); DataTable dataTable = new […]

如何在不使用循环的情况下从数据表中过滤空行?

我的情况是数据表可能包含大量行。 因此,我无法使用循环迭代和更新数据表。 我试过以下代码, from row in table.AsEnumerable() where table.Columns.Any(col => !row.IsNull(col)) select row; 但我找不到Any()的定义。 我应该使用任何命名空间来获取Any()吗? 任何机构请告诉我如何更正或建议任何替代解决方案..

将DataTable分配给ViewState是一个好方法吗?

我从DataBase获取DataTable并分配给ViewState,如下所示:因为我不想每次都访问数据库。 DataTable dt = GetDataTable(); ViewState[“dtTable”] = dt; GetDataTable()是一种方法,它从DataBase中检索1000条记录。 这是最好的方式,哪一种是处理这种方法的最佳方式?