gpt4 book ai didi

c# - 如何使用 C# 应用程序从 mysql 服务器导出 csv 文件并获取导出的 csv 文件顶部的所有列名称

转载 作者:行者123 更新时间:2023-11-29 11:42:56 24 4
gpt4 key购买 nike

我寻找了类似的问题,但没有找到解决我的问题的方法。我开发了一个与 mysql 服务器通信的 C# 程序。

我尝试将表从 mysql 服务器导出到 csv 文件,其中包括顶部每列的名称。它正在工作,但有一个问题。当我使用以下代码时:

string query = "SELECT /*here i insert column names*/ 
UNION SELECT /*here i insert column names*/
FROM `tableName` INTO OUTFILE /*here I insert the path*/
\ FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";

它有效,但我必须写每一栏。有可能避免这种情况吗?所以我可以使用 * 运算符,它看起来像:

string query = "SELECT * 
UNION SELECT *
FROM `tableName` INTO OUTFILE /*here I insert the path*/
\ FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";

因为此代码不适合我。

最佳答案

您可以使用以下语句从表中获取所有列名称:

SELECT COLUMN_NAME, ORDINAL_POSITION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Bundle'

导出行 -> 使用上述语句获取所有列名称 -> 使用 C# 将结果写入文件的开头

我就是这样做的。另一种可能性是动态枢轴,它要复杂得多。

编辑

由于 OP 提到他可能无权访问导出的文件,因此这里有一个快速但肮脏的语句来实现想要的结果:

DECLARE @DataList varchar(500);
SELECT @DataList = COALESCE(@DataList + ',', '') + 'CAST(' + COLUMN_NAME + ' AS varchar(255))'
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YOURTABLE'

DECLARE @PivotList varchar(500);
SELECT @PivotList = COALESCE(@PivotList + ',', '') + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YOURTABLE'

DECLARE @GroupList varchar(500);
SELECT @GroupList = COALESCE(@GroupList + ',', '') + 'MIN(CAST(' + COLUMN_NAME + ' AS varchar(255)))'
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YOURTABLE'

DECLARE @Query varchar(1000)
SET @Query = '
SELECT ' + @GroupList + ' FROM INFORMATION_SCHEMA.COLUMNS
PIVOT
(MAX(COLUMN_NAME) FOR COLUMN_NAME IN (' + @PivotList + ')) AS B
WHERE TABLE_NAME = ''YOURTABLE''
GROUP BY TABLE_NAME
UNION ALL
SELECT ' + @DataList + ' FROM YOURTABLE'
EXEC (@Query)

我希望这对你有用!

问候。

关于c# - 如何使用 C# 应用程序从 mysql 服务器导出 csv 文件并获取导出的 csv 文件顶部的所有列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35453875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com