2016-08-10 28 views
-5

我在我的SQL Server数据库中有3个表(例如3个,但实际上超过30个具有这种条件的表):post,user,person。如何使一个算法获得与SQL Server和C#中的主键关联的表中的所有列名?

  • post:(POST_ID,POST_TEXT,USER_ID)
  • user:(USER_ID,USER_NAME,为person_id)
  • person:(为person_id,person_phone,person_email)

现在,在C#,我想要一个算法创建一个查询,得到如下结果:

post.post_id, post.post_text, post.user_id, user.user_id, user.user_name, user.person_id, person.person_id, person.person_email 

,我使用这种方法在C#中填写SqlDataReader用于读取和访问这些记录中的所有列值。

我知道直接和手动使用'Join'语句来获得该结果的常用方法,但如果表格数量非常多,那么浪费时间。所以,我想要一个生成这个查询的算法来处理C#编程。

非常感谢。

+2

StackOverf低不是'代码为我'的网站。尝试自己并提出有关代码中特定问题的问题。 –

回答

0

要从表查询所有的列名,你可以使用:

SELECT obj.Name + '.' + col.Name AS name 
FROM sys.columns col 
INNER JOIN sys.objects obj 
ON obj.object_id = col.object_id 
WHERE obj.Name IN ('post', 'user', 'person') 
ORDER BY name 

然后,对于如何使用SqlDataReader的C#调用此方法,你可以使用这个文件:https://msdn.microsoft.com/en-us/library/haa3afyz(v=vs.110).aspx

0

选择POST1。 post1,post1.id,post1.post_text,post1.user_id,user1.user_id,user1.user_name,user1.person_id,person1.person_id,person1.person_email post1内部加入用户user1用户user1id = post1.user_id内部加入person1 person1 .person_id = user1.person_id

相关问题