有没有SQL查询通过它可以直接将表的数据转储到C#中的文本或csv文件中?

时间:2017-06-15 18:47:23

标签: c# sql

是否有SQL查询通过它可以直接将表的数据转储到C#中的文本或csv文件中?

4 个答案:

答案 0 :(得分:1)

没有。 C#不是SQL,反之亦然。如果您的意思是“我如何根据查询结果编写文本文件?”,这很容易。

如果您使用谷歌查找 C#SQL到文本文件,那么第一次点击是,您不会猜到,stackoverflow

主要思想是创建连接,根据查询定义阅读器,并使用streamwriter创建文件。

如果您想要其他方法将MSSQL数据导出到文件,可以查看SQLServerCentral

答案 1 :(得分:0)

您需要使用ADO.Net或Entity Framework查询该表,然后打开FileStream将数据输出到text / csv文件中。没有比这更直接和容易的东西了。

答案 2 :(得分:0)

        try
        {
            using (System.IO.StreamWriter ff = new System.IO.StreamWriter(fileName))
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand(
                    @"SELECT
                      firstName, 
                      lastName,
                      salary
                      FROM persons",
                    connection);
                connection.Open();

                ff.WriteLine("firstName,lastName,salary");  // header
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    var rr = (IDataRecord)reader;
                    ff.WriteLine(string.Format("{0},{1},{2:C2}",
                                                 rr.GetValue(0),
                                                 rr.GetValue(1),
                                                 rr.GetValue(2)                                                    
                                               )
                                );
                }                    
                reader.Close();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error");
        }

答案 3 :(得分:0)

...另一方面,您可以在db端构建csv并返回单值(varchar(max))

以下示例适用于sqlsqrver

select cast((
    select 
        cc.clientId,
        ',', -- this is separator
        cc.clientName,
        ',',
        cc.birthdate,
        ',',
        cc.status,
        '
'  -- this new line
    from Clients cc
    for xml path('')

) as XML).value('.','varchar(max)')