首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用C#从SQL数据库表中选择

使用C#从SQL数据库表中选择
EN

Stack Overflow用户
提问于 2010-08-11 10:20:17
回答 4查看 2.7K关注 0票数 0

我有一个用户I列表和一个到SQL Server的开放连接。如何遍历此列表并选择具有First_Name和Last_Name列的匹配UserID?我假设输出可以在数据表中?

非常感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-11 15:16:01

本文应该会对您有所帮助:http://msdn.microsoft.com/en-us/library/aa496058%28SQL.80%29.aspx

我在过去使用它创建了一个存储过程,它接受一个逗号分隔的varchar参数。我的C#程序的源代码是一个选中的列表框,我使用foreach循环和StringBuilder构建了逗号分隔的字符串来进行连接。不过,可能还有更好的方法,这取决于你的列表中有多少项。

回到SQL部分,本文中讨论的fn_Split函数使您能够将逗号分隔的字符串转换回SQL Server可以理解的表变量...并且您可以在存储过程中查询它。

下面是一个示例:

代码语言:javascript
运行
复制
CREATE PROCEDURE GetSelectedItems
(
@SelectedItemsID  Varchar(MAX) -- comma-separated string containing the items to select
)
AS
SELECT * FROM Items
WHERE ItemID IN (SELECT Value FROM dbo.fn_Split(@SelectedItemsIDs,','))

RETURN
GO

请注意,如果您愿意,也可以使用内部联接,而不是IN()。

如果您的SQL Server上没有fn_Split UDF,可以在以下位置找到它:http://odetocode.com/Articles/365.aspx

我希望这能帮到你。

票数 0
EN

Stack Overflow用户

发布于 2010-08-11 10:21:35

它会根据您运行的SQL类型略有不同,但是thisthis应该可以帮助您入门。

票数 3
EN

Stack Overflow用户

发布于 2010-08-11 10:27:04

执行此操作的最便捷方法是:

  1. 将列表转换为包含逗号分隔的用户ID值列表的字符串
  2. 将该CSV字符串提供为IN子句,如下所示:

SELECT u.first_name,u.last_name FROM USER_TABLE u WHERE u.userid IN (逗号分隔的用户IN列表)

否则,您可以将值插入到临时表中并连接到users表:

代码语言:javascript
运行
复制
SELECT u.first_name,
       u.last_name
  FROM USER_TABLE u
  JOIN #userlist ul ON ul.userid = u.userid
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3454837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档