如何在 Select 语句中连接数据行数组中的两列?
how to Join two column in datarow array in Select statement?
我的数据库中有两列 Name
和 Family
(table 名称:成员)。
我想使用姓名+家庭(全名)搜索成员列表,但列中没有全名。
我使用此代码在 Name
列中进行搜索:
SearchResult = new Member().List().Select(string.Format("Name = '{0}'",txt_Checkout_Member.Text));
但我如何对全名(姓名列 + 家庭列)执行搜索?
您可以 select 和 CONCATWS 2 列:
CONCAT_WS(' ', name, family) AS full_name
在您的 SQL 查询中。
您可以在一个Select方法中指定多个条件,例如:
myTable.Select(string.Format("Name = '{0}' AND Family='{1}",name,surname));
虽然这是一种非常低效的数据加载方式,因为当您可能只需要一行时加载整个 table。这就是为什么这种技术永远不会在生产代码中使用的原因,除非 table 包含您想要缓存的行很少。
典型的方法是编写一个 SQL 语句,returns 只包含您需要的行。您可以编写自己的参数化查询,也可以使用 Visual Studio 的数据集设计器,方法是右键单击适配器并选择 "Add Query"。编写 SQL 语句并像在 SQL 中那样定义任何参数(例如@name、@family)。设计者将创建一个方法来执行查询和 returns 数据 table 以及结果
在 C# 中这样做没有意义,但是在 Linq 中通过串联进行过滤是这样的:
SearchResult = new Member().List().Where(x => String.Format("{0} {1}", x.Name, x.Family) == txt_Checkout_Member.Text));
如果数据表是由数据集创建的,则此方法有效。如果不是,请将 x.Name 和 x.Family 替换为 x.ItemArray[列号]
我的数据库中有两列 Name
和 Family
(table 名称:成员)。
我想使用姓名+家庭(全名)搜索成员列表,但列中没有全名。
我使用此代码在 Name
列中进行搜索:
SearchResult = new Member().List().Select(string.Format("Name = '{0}'",txt_Checkout_Member.Text));
但我如何对全名(姓名列 + 家庭列)执行搜索?
您可以 select 和 CONCATWS 2 列:
CONCAT_WS(' ', name, family) AS full_name
在您的 SQL 查询中。
您可以在一个Select方法中指定多个条件,例如:
myTable.Select(string.Format("Name = '{0}' AND Family='{1}",name,surname));
虽然这是一种非常低效的数据加载方式,因为当您可能只需要一行时加载整个 table。这就是为什么这种技术永远不会在生产代码中使用的原因,除非 table 包含您想要缓存的行很少。
典型的方法是编写一个 SQL 语句,returns 只包含您需要的行。您可以编写自己的参数化查询,也可以使用 Visual Studio 的数据集设计器,方法是右键单击适配器并选择 "Add Query"。编写 SQL 语句并像在 SQL 中那样定义任何参数(例如@name、@family)。设计者将创建一个方法来执行查询和 returns 数据 table 以及结果
在 C# 中这样做没有意义,但是在 Linq 中通过串联进行过滤是这样的:
SearchResult = new Member().List().Where(x => String.Format("{0} {1}", x.Name, x.Family) == txt_Checkout_Member.Text));
如果数据表是由数据集创建的,则此方法有效。如果不是,请将 x.Name 和 x.Family 替换为 x.ItemArray[列号]