如何在Select语句中加入datarow数组中的两列?

时间:2015-01-23 08:29:47

标签: c# datarow

我的数据库中有两列NameFamily(表名:成员) 我想使用姓名+家庭(全名)搜索会员列表,但我没有列中的全名。
我在Name列中使用此代码进行搜索:

SearchResult = new Member().List().Select(string.Format("Name = '{0}'",txt_Checkout_Member.Text));

但是如何在Fullname(名称列+系列列)上执行搜索?

3 个答案:

答案 0 :(得分:0)

您可以选择和CONCATWS 2列:

CONCAT_WS(' ', name, family) AS full_name

在您的SQL查询中。

答案 1 :(得分:0)

您可以在Select方法中指定多个条件,例如:

myTable.Select(string.Format("Name = '{0}' AND Family='{1}",name,surname));

这是一种非常低效的加载数据的方法,因为当您可能只需要一行时加载整个表。这就是为什么这种技术从未在生产代码中使用,除非该表包含您想要缓存的很少的行。

典型的方法是编写一个只返回所需行的SQL语句。您可以编写自己的参数化查询,也可以使用Visual Studio的数据集设计器,右键单击适配器并选择“添加查询”。编写SQL语句并像在SQL中一样定义任何参数(例如@name,@ family)。设计人员将创建一个执行查询的方法,并返回带有结果的数据表

答案 2 :(得分:0)

在C#中执行此操作没有意义但是要通过Linq中的连接进行过滤是这样的:

SearchResult = new Member().List().Where(x => String.Format("{0} {1}", x.Name, x.Family) == txt_Checkout_Member.Text));

如果数据表是由数据集创建的数据表,则此方法有效。如果不是用x.ItemArray [列号]替换x.Name和x.Family