回复:VB请问如何查找多个符合条件的值https://bbs.csdn.net/topics/392561310

 

金刚般若(77063837) 10:43:35
Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        查询数据()
        Dim 列表 As New DataGrid
        列表.Parent = Me
        列表.Size = New Size(600, 200)
        Dim 数据表 = 字符串转数据表()
        Dim 筛选 = "简拼 Like '%" + "RS" + "%' "
        列表.DataSource = 数据表
        Dim 筛选表 = 数据表.DefaultView
        筛选表.RowFilter = 筛选
    End Sub
    Function 字符串转数据表() As DataTable
        Dim aa = New DataTable
        For Each ss In "内码 简拼 品名 成份名 药品类别 规格 配伍禁忌".Split(" ")
            aa.Columns.Add(ss)
        Next ss
        For Each ss In "47019 RS 人参 人参 人参 支 藜芦;1111 LL 藜芦 藜芦 藜芦 g 人参,党参,玄参,西洋参,细辛;33212 XX 细辛 细辛 细辛 g 藜芦;2222 RS 蚺蛇 蚺蛇 蚺蛇 g 全蝎".Split(";")
            aa.Rows.Add(ss.Split(" "))
        Next ss
        Return aa
    End Function
    Sub 查询数据()
        Dim ts = ""
        Dim dd As DataRow
        For Each dd In 字符串转数据表().Rows
            If dd.ItemArray.Contains("RS") Then
                ts += String.Join(" ", dd.ItemArray) + Chr(13) + Chr(10)
            End If
        Next dd
        MessageBox.Show(ts, "友情提示:")
    End Sub
End Class


金刚般若(77063837) 15:55:17
        void 请问如何查找多个符合条件的值()
        {
            DataTable aa = new DataTable(), bb = new DataTable();
            foreach (string ss in "内码 简拼 品名 成份名 药品类别 规格 配伍禁忌".Split(' '))
                aa.Columns.Add(ss);
            var ff = "47019 RS 人参 人参 人参 支 藜芦;1111 LL 藜芦 藜芦 藜芦 g 人参,党参,玄参,西洋参,细辛;33212 XX 细辛 细辛 细辛 g 藜芦;2222 RS 蚺蛇 蚺蛇 蚺蛇 g 全蝎"
                .Split(';').Select(dd => dd.Split(' ')).ToArray();
            ff.Select(dd => aa.Rows.Add(dd)).ToArray();
            foreach (DataRow kk in aa.Rows)
                电话.Text += kk.ItemArray.Contains(姓名.Text) ?
                    string.Join(" ", kk.ItemArray) : "\r\n";
            //MessageBox.Show(电话.Text);
            bb = aa.Copy(/*求一个高效对比算法,比较两个DataTable差异数据https://bbs.csdn.net/topics/392562169*/);
            bb.Rows.RemoveAt(0); bb.Rows.RemoveAt(0);
            bb.Columns.RemoveAt(bb.Columns.Count - 1); bb.Columns.RemoveAt(bb.Columns.Count - 1);
            //IEnumerable<DataRow> IW = bb.AsEnumerable().Except(aa.AsEnumerable());
            foreach (DataRow dd in bb.Rows) aa.Rows.Remove(aa.Rows.Cast<DataRow>().First(hh => hh.ItemArray[0] == dd.ItemArray[0]));
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值