DataTable access C#

本文关键字:access DataTable | 更新日期: 2023-09-27 18:04:12

大家好,我有以下代码

Console.WriteLine("y: {0}", liveData.Tables["Players"].Rows.Count); //Shows full table
        DataRow[] foundRows;
        foundRows = liveData.Tables["Players"].Select("FName like 'Marc'");
        foreach (DataRow dr in foundRows)
        {
            Console.WriteLine("Index is " + dr.Table.Rows.IndexOf(dr));
        }

现在,当我返回变量dr处正确显示的行的索引时

我想做的是声明Fname和Marc,我想把它们作为变量传递,而不是手动输入字符串,这可能吗?

例如,有时我可能需要搜索Lname和其他什么,或者不同的名字?

谢谢你看起来有点卡住了,但同样可能是一个简单的答案:(

DataTable access C#

如果我没有弄错,您希望让查询从FName中选择一个类似于用户输入的名称(在本例中为"Marc"(。

如果是这样的话,你最好的办法是事先询问输入,并将该值分配到文本框中的变量中。

String Queryname = TextBox1.Text
Console.WriteLine("y: {0}", liveData.Tables["Players"].Rows.Count); //Shows full table
    DataRow[] foundRows;
    foundRows = liveData.Tables["Players"].Select("FName like " + Queryname);
    foreach (DataRow dr in foundRows)
    {
        Console.WriteLine("Index is " + dr.Table.Rows.IndexOf(dr));
    }

如果我没有回答你的问题,请原谅。让我知道这是否有效,如果无效,试着用一个例子来澄清。

string SelectQuery=//create query based on user input
foundRows = liveData.Tables["Players"].Select(SelectQuery);

例如,如果用户想要根据姓氏进行搜索,则Lname+like+搜索词。您需要用列名映射搜索属性。

难道不能用变量构建字符串吗?:.Select(param+" like '"+value+"'")

您可以创建一个函数

public DataRow[] MySelect(string column, string name)
{
    return liveData.Tables["Players"].Select(string.Format("{0} LIKE '{1}'", column, name));
}

然后像这个一样使用

foundRows = MySelect("LName", "John");