Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用DataTable列标题名称联接表_C#_Sql Server 2008_Datatable - Fatal编程技术网

C# 使用DataTable列标题名称联接表

C# 使用DataTable列标题名称联接表,c#,sql-server-2008,datatable,C#,Sql Server 2008,Datatable,我使用SQL从多个表中进行选择,并将它们连接到一个DataTable中。代码如下所示: SqlCommand command = new SqlCommand("(SELECT Table1, Col2, Col3 FROM Table1DB" + "UNION SELECT Table2, Col2, Col3 FROM Table2DB", connection); SqlDataAdapter myAdapter = new SqlDataAdapter(command

我使用SQL从多个表中进行选择,并将它们连接到一个DataTable中。代码如下所示:

SqlCommand command = new SqlCommand("(SELECT Table1, Col2, Col3 FROM Table1DB" + "UNION SELECT Table2, Col2, Col3 FROM Table2DB", connection);


        SqlDataAdapter myAdapter = new SqlDataAdapter(command);
        myAdapter.Fill(dt);
现在一切正常,但当我查看dt的内容时,我注意到列标题如下:Table1、Col2、Col3。表2所选的实际值是正确的,但我只是想知道为什么标题只使用第一次选择的名称?有什么办法可以改变吗

这没什么大不了的,但做这样的事情来选择每行的第一列感觉很傻:

dt2.Rows[count]["Table1"].ToString());

伯爵在哪,我在哪一排。我觉得如果有一个更通用的列名而不是第一个SELECT的主键会更好?

当您联合(顺便说一句,UNION不同于JOIN)两个表时,只有一个列标题包含名称,因为您实际上将这两个表合并为一个。这绝对合乎逻辑。如果需要,可以将别名应用于列名,以便在最终表中获得所需的名称。明白了,谢谢。如何应用别名?不客气。例如,选择Table1作为MyNewTable1,选择Col2作为NewCol2,依此类推。