我的数据库中有两列Name
和Family
(表名:成员)
我想使用姓名+家庭(全名)搜索会员列表,但我没有列中的全名。
我在Name
列中使用此代码进行搜索:
SearchResult = new Member().List().Select(string.Format("Name = '{0}'",txt_Checkout_Member.Text));
但是如何在Fullname(名称列+系列列)上执行搜索?
答案 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