我有一个视图vwGetData,它从两个表t1,t2中获取数据并具有字段:) |2 R: b( i3 ~
t1.Field1 [ALIAS1], t1.Field2, t2.Field3, t2.Field4, t2.Field5 [ALIAS5] 4 B7 v4 F5 s% z9 v2 y8 |+ s我将在下面提供输入 : n: |. u# q3 ^. b2 r* hSelect * from vwGetData9 z9 t5 ]1 [$ R
我想在C#/ SQL中获得以下输出$ I. B2 B* g1 X% |
ALIAS12 d, Q+ C7 H+ n& d
Field2# [3 |4 z& I+ j; M. I7 x
Field37 ^" J0 Q8 D) h+ S: R' K I7 `
Field4- G- a% E7 ^3 J, O; ?5 I
ALIAS5 % _: Y+ s' V! m( s或者" A, w" u& A' X% H# l$ X% Y
ALIAS1, Field2, Field3, Field4, ALIAS5) k/ E. s. U9 o8 l& `
我想使用C#和SQL做到这一点。 ( W9 g% c7 f8 H6 d/ k5 ~ v K2 a+ Z7 Q0 ?+ [' S) y 解决方案: ` }( K1 {8 b% m1 {
" b6 _: W5 P ^9 d) x n- F0 M/ q4 y. s
) O6 s' C0 Y4 N
您要做的第一件事是确保没有数据被返回: Z- k2 W7 w$ ~8 S0 m7 S- iSELECT TOP 0 [vwGetData].* FROM [vwGetData] WHERE 1 = 2; ; ~3 `# u, S' i7 W; o& T% X现在假设您知道如何设置一个DataReader,您将执行以下操作:3 b/ b3 f0 v6 w+ G9 L
using(var reader = command.ExecuteReader())0 S( w) r, i# p- Y
{ : o0 f G) f* Z7 m // This will return false - we don't care, we just want to make sure the schema table is there.# E( t, K: d. P- P
reader.Read(); 3 P4 s# O2 {6 Z. |: v8 i var tableSchema = reader.GetSchemaTable();' H1 r4 ^: s/ E
// Each row in the table schema describes a column 6 q3 u. U0 n- P foreach (DataRow row in tableSchema.Rows)! G# u+ P% L+ X+ m; B. Q
{/ }* l( I0 G: s( S
Console.WriteLine(row["ColumnName"]); $ K- W9 h d8 j' A" }- w }6 E& ]: n* m+ N# O. h( ]! S
} 1 E$ A" A% s& O3 s2 G8 R您也可以查看SQL Catalog SYS视图。