vb真心不行。c#真心可以 Dim text As String = Me.TextBox1.Text Dim dt As DataTable = Me.DataGridView1.DataSource dt = dt.AsEnumerable().OrderByDescending(Function(a) a.Field(Of String)("name").Contains(text)).CopyToDataTable() DataGridView1.DataSource = dt 看看有错么、、 "rname" 列 我已经改成“name”列了。
vb转c# 还需要 什么反编译器么 大致手打。。不会的就去网站查
Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim text As String text = TextBox1.Text Dim da1 As DataTable = New DataTable da1 = CType(DataGridView1.DataSource, DataTable) da1 = da1.AsEnumerable().OrderByDescending(Function(a) a.Field(Of String)("name").Contains(text)).CopyToDataTable() DataGridView1.DataSource = da1 End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim da1 As DataTable = New DataTable da1.Columns.Add("id") da1.Columns.Add("name") da1.Columns.Add("su", Type.GetType("System.Decimal")) Dim dr As DataRow = da1.NewRow() dr("id") = 1 dr("name") = "张三" dr("su") = 10.0 da1.Rows.Add(dr) dr = da1.NewRow() dr("id") = 2 dr("name") = "李四" dr("su") = 20.0 da1.Rows.Add(dr) dr = da1.NewRow() dr("id") = 3 dr("name") = "王武" dr("su") = 30.0 da1.Rows.Add(dr) dr = da1.NewRow() dr("id") = 4 dr("name") = "赵柳" dr("su") = 30.0 da1.Rows.Add(dr) dr = da1.NewRow() dr("id") = 5 dr("name") = "呵呵" dr("su") = 40.0 da1.Rows.Add(dr) DataGridView1.DataSource = da1 End Sub End Class
datagridview.datasource = datatable;
DataTable dt = CreateDataTable(); dt = dt.AsEnumerable().OrderByDescending(a => a.Field<string>("name").Contains(text)).CopyToDataTable();
this.dataGridView1.DataSource = dt;
虽然没用过linq.但是看代码目测 是这个意思试了下。没效果啊。。 CreateDataTable() 有这个方法吗?
我3.5环境的额
需要引用 System.Data.DataSetExtensions
需要引用 System.Data.DataSetExtensions
引用了 System.Data.DataSetExtensions ,。。,但没有这个方法
using system.linq
CreateDataTable 返回的是你绑定在dataGridView1的数据源string text = this.textBox1.Text;
DataTable dt = (DataTable)this.dataGridView1.DataSource;
dt = dt.AsEnumerable().OrderByDescending(a => a.Field<string>("name").Contains(text)).CopyToDataTable();
this.dataGridView1.DataSource = dt;
是在DataSetExtensions 里面的DataTableExtensions吧?你看图。没有
好吧 ,我错了
但是我试过了。排序并没有变
好吧 ,我错了
但是我试过了。排序并没有变发错的图居然不是x照,
不能啊, 我这试过可以排序的。
代码如下。。我转成vb版了。。
Dim da1 As DataTable = New DataTable
da1.Columns.Add("id")
da1.Columns.Add("name")
da1.Columns.Add("su", Type.GetType("System.Decimal"))
Dim dr As DataRow = da1.NewRow() dr("id") = 1
dr("name") = "张三"
dr("su") = 10.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 2
dr("name") = "李四"
dr("su") = 20.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 3
dr("name") = "王武"
dr("su") = 30.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 4
dr("name") = "赵柳"
dr("su") = 30.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 5
dr("name") = "呵呵"
dr("su") = 40.0
da1.Rows.Add(dr)
da1 = da1.AsEnumerable().OrderByDescending(Function(a) a.Field(Of String)("name").Contains(Text)).CopyToDataTable()
DataGridView1.DataSource = da1
但是没有效果哦。并没有排序。。
你是说没这个CreateDataTable啊他只是举例你获取内容添加到dt里面而已。。
好吧 ,我错了
但是我试过了。排序并没有变发错的图居然不是x照,
不能啊, 我这试过可以排序的。那我建个c#项目试试不知道是不是vb是不是这样写
C#还真可以。。但是能帮我把 dt = dt.AsEnumerable().OrderByDescending(a => a.Field<string>("name").Contains(text)).CopyToDataTable();
这句 转下vb写法么
Dim text As String = Me.TextBox1.Text
Dim dt As DataTable = Me.DataGridView1.DataSource
dt = dt.AsEnumerable().OrderByDescending(Function(a) a.Field(Of String)("name").Contains(text)).CopyToDataTable()
DataGridView1.DataSource = dt
看看有错么、、 "rname" 列 我已经改成“name”列了。
Dim text As String
text = TextBox1.Text Dim da1 As DataTable = New DataTable
da1 = CType(DataGridView1.DataSource, DataTable)
da1 = da1.AsEnumerable().OrderByDescending(Function(a) a.Field(Of String)("name").Contains(text)).CopyToDataTable()
DataGridView1.DataSource = da1
End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim da1 As DataTable = New DataTable
da1.Columns.Add("id")
da1.Columns.Add("name")
da1.Columns.Add("su", Type.GetType("System.Decimal"))
Dim dr As DataRow = da1.NewRow() dr("id") = 1
dr("name") = "张三"
dr("su") = 10.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 2
dr("name") = "李四"
dr("su") = 20.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 3
dr("name") = "王武"
dr("su") = 30.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 4
dr("name") = "赵柳"
dr("su") = 30.0
da1.Rows.Add(dr) dr = da1.NewRow()
dr("id") = 5
dr("name") = "呵呵"
dr("su") = 40.0
da1.Rows.Add(dr)
DataGridView1.DataSource = da1
End Sub
End Class
我发现问题的根源了刚我转都也没错,是vs2008不行。我刚用vs2010试了下。。vb,C#都可以
。。我错了。。、
只能用4个英文字母来形容你。。就是
NCIE