Как сгенерировать скрипт вставки из таблицы данных в C# и сохранить его в текстовом файле?
У меня есть данные листа excel, и я хочу сгенерировать скрипт вставки из листа excel. Я получаю данные листа excel в таблицу данных, но не знаю, как сгенерировать скрипт вставки из таблицы данных и сохранить его в текстовом файле с помощью кода c#.
Я хочу автоматически отображать имена столбцов с помощью цикла, но не записывать каждое имя столбца в команду print.
пожалуйста, помогите мне решить эту проблему
Что я уже пробовал:
protected void btnconverter_Click(object sender, EventArgs e) { if (btnFleUpld.HasFile) { string FileName = Path.GetFileName(btnFleUpld.FileName); string Extension = Path.GetExtension(btnFleUpld.PostedFile.FileName); //string fileExtension = filename.Substring(filename.LastIndexOf(".")); string FolderPath = ConfigurationManager.AppSettings["FolderPath"]; string Filepath = FolderPath + FileName; // fileUpld.SaveAs(Server.MapPath(Filepath)); btnFleUpld.SaveAs(Server.MapPath("~/fileupload/" + FileName)); Import_To_Grid(Filepath, Extension);//, rbHDR.SelectedItem.Text } } private void Import_To_Grid(string Filepath, string Extension)//, string isHDR { OleDbConnection oledbConn = new OleDbConnection(); if (Path.GetExtension(Filepath) == ".xls") { oledbConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Filepath + ";Extended Properties=Excel 12.0;"); } oledbConn.Open(); OleDbCommand cmd = new OleDbCommand(); ; OleDbDataAdapter oleda = new OleDbDataAdapter(); DataTable dt = new DataTable(); //DataSet ds = new DataSet(); cmd.Connection = oledbConn; cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT * FROM [PsslInOrders$]"; oleda = new OleDbDataAdapter(cmd); oleda.Fill(dt); StreamWriter swExtLogFile = new StreamWriter("D:/fileupload/vishnu2.txt", true); swExtLogFile.Write(Environment.NewLine); //foreach (DataRow row in dt.Rows) for (int i = 0; i <= dt.Rows.Count-1;i++ ) { for (int k = 0; k < dt.Columns.Count; k++) { string ColName = dt.Columns[k].ColumnName.ToString(); } swExtLogFile.Write(" INSERT [dbo].[Orders] ([OrderType], [OrderNumber], [Status], [Date], [RequestedOn], [CustomerID], [Location]) VALUES ( '" + dt.Rows[i]["OrderType"].ToString().Trim() + "','" + dt.Rows[i]["OrderNumber"].ToString().Trim() + "','" + dt.Rows[i]["Status"].ToString().Trim() + "','" + dt.Rows[i]["Date"].ToString().Trim() + "','" + dt.Rows[i]["RequestedOn"].ToString().Trim() + "','" + dt.Rows[i]["CustomerID"].ToString().Trim() + "','" + dt.Rows[i]["Location"].ToString().Trim() + "')"); } swExtLogFile.Write("*****END OF DATA****" + DateTime.Now.ToString()); swExtLogFile.Flush(); swExtLogFile.Close(); }
RickZeeland
Вместо строки для имен столбцов вы также можете использовать число.
Vishnu Vardhan M
будет полезно, если вы предоставите код, используя число вместо строки.Я попробовал по номеру, но не получил результата.