Как экспортировать данные в csv, а затем загрузить их на FTP?
Привет,
Я использую приведенный ниже код проекта консольного приложения c# для экспорта данных из sql server в csv-файл, который работает нормально, как и ожидалось, но вторая часть кода для загрузки этого CSV на FTP-сервер не работает. Как мне выполнить эти два действия в одном коде? Экспортируйте и загружайте один и тот же CSV-файл на FTP.
Я получаю ниже ошибку в моем файле журнала.
Message :Sequence contains no elements<br/>
Что я уже пробовал:
<pre> static void Main(string[] args) { string strConn = ConfigurationManager.ConnectionStrings["ExportRedwoodData.Properties.Settings.Setting"].ConnectionString; string ErrorLogfilePath = @"C:\Log\Error.txt"; string ParamFilePath = @"C:\Params\LastSyncDate.xml"; XmlDocument doc = new XmlDocument(); doc.Load(ParamFilePath); XmlNode node = doc.DocumentElement.SelectSingleNode("/Date"); string last_sync_date = node.InnerText; string sql = @"SQL Query"; try { using (SqlConnection conn = new SqlConnection(strConn)) { SqlCommand comm = new SqlCommand(sql, conn); comm.Parameters.Add(new SqlParameter("@last_sync_time", last_sync_date)); SqlDataAdapter da = new SqlDataAdapter(comm); DataSet ds = new DataSet(); da.Fill(ds, "QB"); DataTable dt = ds.Tables["QB"]; StreamWriter sw = new StreamWriter(@"C:\Export\wt_shipments_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()); //sw.Write(","); } else { sw.Write(dr[i].ToString()); sw.Write(","); } } sw.Write(sw.NewLine); } sw.Close(); DateTime NowDateTime = DateTime.Now; node.InnerText = NowDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff"); doc.Save(ParamFilePath); string filename = @"C:\Export\wt_shipments_data_123.csv"; FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("ftp://"+ "ftpServerIPAddress" + "/test" + Path.GetFileName(filename)); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential("username", "password"); request.UsePassive = true; request.UseBinary = true; request.KeepAlive = false; FileStream stream = File.OpenRead(filename); byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); stream.Close(); } } catch(Exception ex) { using (StreamWriter writer = new StreamWriter(ErrorLogfilePath, true)) { writer.WriteLine("Message :" + ex.Message + "<br/>" + Environment.NewLine + "StackTrace :" + ex.StackTrace + "" + Environment.NewLine + "Date :" + DateTime.Now.ToString() + Environment.NewLine); writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine); } } }
jimmson
На какой строке вы получаете ошибку? Вам нужно получить больше информации об исключении, это ключ к решению вашей проблемы.