Mark
Mark

Reputation: 3

StreamWriter writes all data into obe Column in CSV

using (var stream = new MemoryStream())
            using (var writer = new StreamWriter(stream))
            using (var mailClient = client)

            using (var messagesd = msg)
            {
               
                foreach (DataColumn column in objDT.Columns)
                {
                    writer.WriteLine(column.ColumnName);
                }

                writer.WriteLine();

                for (int i = 0; i < objDT.Rows.Count; i++)
                {
                    DataRow row = objDT.Rows[i];

                    for (int j = 0; j < row.ItemArray.Length; j++)
                    {
                        if (row.ItemArray[j] != null && !Convert.IsDBNull(row.ItemArray[j]))
                        {
                            writer.Write(row.ItemArray[j].ToString());
                        }
                        else
                        {
                            writer.Write("");
                        }

                        if (j < row.ItemArray.Length - 1)
                        {
                            writer.Write(",");
                        }
                        else if (i < objDT.Rows.Count - 1)
                        {
                            writer.WriteLine();
                        }
                    }
                }
                writer.Flush();
                stream.Position = 0;

                messagesd.Attachments.Add(new Attachment(stream, "test.csv"));
                mailClient.Send(messagesd);

I have 3 columns, but result I`m getting:

testATestBTestC

under single column Result i want is TestA column 1, TestB column 2 and TestC column 3

Any help would be appreciated. Thank you.

Upvotes: 0

Views: 360

Answers (1)

Serhii
Serhii

Reputation: 753

  1. You should write a delimeter(,) after every value (header name or value) except last one. Use Writemethod to put values into a row and WriteLine to start a new row.

  2. It is better to use existing libraries from Nuget. CSVHelperas example.

Upvotes: 1

Related Questions