我正在尝试打印出来自DB的表,其中EntityId列等于DataclassId列,这里是代码
public void getRootTables_checkSP()
{
string connect = "Data Source= EUADEVS06\\SS2008;Initial Catalog=TacOps_4_0_0_4_test;integrated security=SSPI; persist security info=False;Trusted_Connection=Yes";
SqlDataReader rootTables_List = null;
SqlConnection conn = new SqlConnection(connect);
conn.Open();
SqlCommand s_cmd = new SqlCommand("SELECT * FROM sys.Tables WHERE EntityId = DataclassId", conn);
rootTables_List = s_cmd.ExecuteReader();
while (rootTables_List.Read())
{
string test = rootTables_List[0].ToString();
Console.WriteLine("ROOT TABLES ARE {0}", test);
}
rootTables_List.Close();
conn.Close();
}
Run Code Online (Sandbox Code Playgroud)
但它一直说这些列无效,但是当我打印出数据库"syscolumns"中的所有列时,它们就在那里......
谁能告诉我为什么我会收到这样的错误?
编辑
我真正想要的是查询db TacOps_4_0_0_4_test而不是系统.我才意识到这一点
编辑2
这是我的数据库中的表的示例
Table_1
ID Sequence Type Heigh Weight EntityId DataclassId
0 1 s 1.4 2.5 42-2c-Qi 42-2c-Qi
1 2 s 2.4 2.5 zh-km-xd zh-km-xd
2 3 s 3.4 2.5 8n-tr-l7 8n-tr-l7
Table_2
ID Data Person EntityId DataclassId
0 1 Dave 58-zj-4o 41-2c-Q7
1 2 Sara 99-op-t6 oy-7j-mf
2 3 Silve 75-qy-47 2d-74-ds
Table_3
ID Name Genre EntityId DataclassId
0 LR Ac 78-jd-o9 78-jd-o9
1 OI Dr 4t-jb-qj 4t-jb-qj
2 DH Do 7j-3e-ol 7j-3e-ol
Run Code Online (Sandbox Code Playgroud)
输出应该是
Table_1
Table_3
Run Code Online (Sandbox Code Playgroud)
EntityId和DataclassId确实没有sys.tables中存在的列.
你正在从sys.tables中选择数据,你的查询中没有syscolumns的概念,所以我不知道为什么你在解释中提到'syscolumns'?