RaviP17 Ответов: 1

Как использовать csvhelper для записи в CSV?


Привет,
Я никогда раньше не использовал CSV Helper, поэтому я не знаю, как использовать его для записи данных в CSV-файл из результата запроса sql server.
В настоящее время я использую приведенный ниже код, который отлично работает для записи в csv-файл. В этом коде мне пришлось написать пару условий, чтобы включить двойные кавычки для столбца, в который включена запятая (,).
Итак, как я могу использовать CSV Helper для включения двойных кавычек для всех моих строковых столбцов?
Заранее благодарю вас за любую помощь.

Что я уже пробовал:

using (SqlConnection conn = new SqlConnection(strConn))
                {
                    SqlCommand comm = new SqlCommand(sql, conn);
                    comm.Parameters.Add(new SqlParameter("@pick_ticket_no", pick_ticket_no));
                    SqlDataAdapter da = new SqlDataAdapter(comm);
                    DataSet ds = new DataSet();
                    da.Fill(ds, "QB");
                    DataTable dt = ds.Tables["QB"];
                    if (dt.Rows.Count > 0)
                    {
                        FTPUpload = true;
                        StreamWriter sw = new StreamWriter(@"C:\Export\data_" + DateTime.Now.ToString("MMddyyyyHHmmss") + ".csv", false);
                        int iColCount = dt.Columns.Count;

                        for (int i = 0; i < iColCount; i++)
                        {
                            sw.Write(dt.Columns[i]);
                            if (i < iColCount - 1)
                            {
                                sw.Write(",");
                            }
                        }
                        sw.Write(sw.NewLine);

                        foreach (DataRow dr in dt.Rows)
                        {
                            for (int i = 0; i < iColCount; i++)
                            {
                                if (dr[i].ToString().Contains(","))
                                {
                                    sw.Write("\"{0}\",", dr[i].ToString());
                                }
                                else
                                {
                                    sw.Write(dr[i].ToString());
                                    sw.Write(",");
                                }
                            }

                            sw.Write(sw.NewLine);
                        }
                        sw.Close();
                    }

                }

1 Ответов

Рейтинг:
2

phil.o

5 б

Maciej Los

Спасибо.