繁体   English   中英

将数据从mssql数据库导出到csv文件

[英]Export data from the mssql database to a csv file

好工作vbnet我将在我的项目上开始一个新项目,我在数据库中从这个项目中提取目的,从某些表中提取数据,我想保存为csv

"@@FILE VERSION@@","251" "@@TABLEDEF START@@" 
"MESAJ=String,50,""MESAJ"","""",50,Data,""""" 
"ID=Integer,0,""ID"","""",10,Data,""""" 
"SUBEIND=Integer,0,""SUBEIND"","""",10,Data,""""" 
"KASAIND=Integer,0,""KASAIND"","""",10,Data,""""" "@@INDEXDEF START@@" 
"@@INDEXDEF END@@" "@@TABLEDEF END@@" 
"MESAJ","ID","SUBEIND","KASAIND", "YeniFirma","112","100","101", 
"YeniCari","100","100","101", "YeniStok","101","100","101", –

将sql数据集结果作为参数发送到此函数。 它为您创建csv格式。 public string ConvertToCSV(DataSet objDataSet){StringBuilder content = new StringBuilder();

        if (objDataSet.Tables.Count >= 1)
        {
            System.Data.DataTable table = objDataSet.Tables[0];

            if (table.Rows.Count > 0)
            {
                DataRow dr1 = (DataRow)table.Rows[0];
                int intColumnCount = dr1.Table.Columns.Count;
                int index = 1;

                foreach (DataColumn item in dr1.Table.Columns)
                {
                    content.Append(String.Format("\"{0}\"", item.ColumnName));
                    if (index < intColumnCount)
                        content.Append(",");
                    else
                        content.Append("\r\n");
                    index++;
                }

                foreach (DataRow currentRow in table.Rows)
                {
                    string strRow = string.Empty;
                    for (int y = 0; y <= intColumnCount - 1; y++)
                    {
                        strRow += "\"" + currentRow[y].ToString() + "\"";

                        if (y < intColumnCount - 1 && y >= 0)
                            strRow += ",";
                    }
                    content.Append(strRow + "\r\n");
                }
            }
        }

此函数发送邮件:public void sendMail(string csv){

        var sendMailThread = new Thread(() =>
        {
            MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(csv));

            Attachment attachment = new Attachment(stream, new ContentType("text/csv"));
            attachment.Name = DateTime.Now.ToShortDateString() + "Report.csv";
            MailMessage ePosta = new MailMessage();
            ePosta.From = new MailAddress("xx");
            ePosta.To.Add("xxx");
            ePosta.CC.Add("xxx");
            ePosta.CC.Add("xxx");
            ePosta.Attachments.Add(attachment);
            ePosta.Subject = DateTime.Now + " Subject";
            ePosta.Body = DateTime.Now + " body message.";
            SmtpClient smtp = new SmtpClient();

            smtp.Credentials = new System.Net.NetworkCredential("xxx", "xxx");
            smtp.Port = 587;
            smtp.Host = "smtp.gmail.com";
            smtp.EnableSsl = true;
            object userState = ePosta;

            smtp.SendAsync(ePosta, (object)ePosta);
        });
        sendMailThread.Start();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM