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和其他什么,或者不同的名字?
谢谢你看起来有点卡住了,但同样可能是一个简单的答案:(
如果我没有弄错,您希望让查询从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");