首页 > 解决方案 > 如何使用行文本检测数据表中的行是否可用

问题描述

我有 Combobox 的数据源代码,它有两列和三行。

    DataTable m_Table = new DataTable();
    string[] m_Columns = { "number", "name" };

    public Form1()
    {
        InitializeComponent();

        for (int i = 0; i < m_Columns.Length; i++)
        {
            DataColumn column = new DataColumn(m_Columns[i]);
            m_Table.Columns.Add(column);
        }

        DataSet ds = new DataSet();
        ds.Tables.Add(m_Table);

        m_Table.Rows.Add(new string[] { "1", "AAA" });
        m_Table.Rows.Add(new string[] { "2", "BBB" });
        m_Table.Rows.Add(new string[] { "2", "CCC" });

        DataView view = new DataView(m_Table);

        ComboList.DataSource = view;
        ComboList.DisplayMember = "name";
        ComboList.ValueMember = "no";
      )

如何使用行的文本检测该行是否可用

我试过在下面使用

if(ComboList.Items.Contains("AAA"))

if((cmbStudentList.DataSource as DataView).Table.Rows.Contains("AAA"))

但是在尝试这些时会出现错误。我怎样才能实现?

标签: c#winformsdatatabledatasource

解决方案


System.Data.DataSetExtensions.dll与 Linq 一起使用:

DataRow matchingRow = m_Table
    .AsEnumerable()
    .FirstOrDefault( row => row["name"] == "AAA" );

if( matchingRow != null )
{
    // do stuff with `matchingRow`
}

记录在这里:https ://docs.microsoft.com/en-us/dotnet/api/system.data.datatableextensions.asenumerable?view=netframework-4.8


推荐阅读