【问题标题】:Dynamic DataGridView Filtering c#动态 DataGridView 过滤 c#
【发布时间】:2016-05-11 19:27:07
【问题描述】:

我刚开始研究 c# 和 sql,我搜索了但我找不到任何解决我的问题的方法,希望有人能帮助我。 我在动态创建的表单上有一个DataGridView。我使用 LINQ to SQL 从数据库中获取 8 列。但我还创建了另一个列名作为“计算”,它使用其他列数据。我的问题是我需要根据计算列过滤我的表。下面是我的部分代码:

// get datas from database.
var query = _context.Database.SqlQuery<my_Type>("my_stored_procedure");

var binding = new BindingList<my_Type>(query.ToList());
            bsMasterPrimary.DataSource = binding;
            myDataGridView.DataSource = bsMasterPrimary;


//filter

DataView dv = new DataView();

dv = myDataGridView.DataSource as DataView;//dv always comes null 



dv.RowFilter = string.format("Calculation <0");
  //  dt = (DataTable)((BindingSource)this.dgvAmazonFBAInventory.DataSource).DataSource;

我也试过了,但是报错了:

无法将“System.ComponentModel.BindingList`1[MyProject.MyType]”类型的对象转换为“System.Data.DataTable”类型。 }

【问题讨论】:

    标签: c# sql-server datagridview linq-to-sql


    【解决方案1】:

    使用嵌套的for循环将数据网格视图的值分配给数据表更容易 或者 您可以将数据网格转换为数据视图,然后将数据视图转换为数据表

    【讨论】:

    • 我尝试将我的 DataGridView 转换为 DataView,但我失败了几次。我该怎么做?我尝试 DataView dv = MyDataGridView.DataSource as DataView 但它没有用,谢谢。
    • 基本上DataTable dt =(DataTable) datagridview.datasource
    • 谢谢。但现在我收到此错误:无法将“System.Data.DataRowView”类型的对象转换为“MyProject.usp_MyDataType”。如何将 DataViewRow 转换为特定的数据类型。 ?谢谢你
    • 您可以尝试转换为您定义的类型或使用循环将每个元素添加到新类型中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多