SavePath?сохранить Excel в SQL? - PullRequest
       10

SavePath?сохранить Excel в SQL?

0 голосов
/ 13 августа 2010

Я действительно не понимаю, как это сделать.

  • Я хочу иметь возможность загружать лист Excel из моего веб-приложения, используя элемент управления загрузкой файлов.
  • Далее я хочу прочитать каждую отдельную строку под первым рядом.(Таким образом, начиная со строки 2, строка 1 будет заголовком столбца).
  • Наконец, я хочу передать прочитанные строки в другой метод, который будет делать то, что я хочу, и затем публиковать их вa gridview.

Как я собираюсь это сделать ...
Поскольку мое веб-приложение опубликовано в сети, размещено на локальном ящике ... мой обычный путь сохранения для загруженного файла(рабочий стол) не работает.
Поэтому я решил сохранить его на SQL Server, который также размещен на моем локальном компьютере.

Поэтому, я думаю, я пытаюсь:

  • Сохраните загруженный файл Excel в базу данных SQL.
  • Прочитайте каждую строку из Excel и пропустите ее по намеченному методу.

Хорошо, это было очень запутанно.Там должен быть более простой способ сделать это!(Мне действительно нужна база данных SQL?)
О, и есть ли хорошие идеи для моего savePath?

1 Ответ

0 голосов
/ 02 сентября 2010

На самом деле не решил это.Но с помощью OleDBConnection легче читать все, что находится в файле Excel, следующим образом:

            try
            {
                using (OleDbConnection olcon = new OleDbConnection())
                {
                        olcon.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(fileupFile.FileName) + ";Extended Properties=Excel 12.0";
                        OleDbCommand olcmd = new OleDbCommand("SELECT * FROM [Sheet1$]", olcon);
                        olcon.Open();
                        OleDbDataReader olread = olcmd.ExecuteReader();
                        while (olread.Read())
                        {
                            line = (String)(olread.GetString(0));
                            Verify(line); //calls the datatosql method
                        }
                        olcon.Close();
                        lblFiup.Text = "Data Inserted Sucessfully";   
                        lblFiup.ForeColor = System.Drawing.Color.Green; 
                }
            }

Затем перейдите в другой метод, который использует SqlConnection для записи в SQL Server.Как это:

        protected void datatosql(String url, String stat)
        {
            try
            {
                using (SqlConnection sqlcon = new SqlConnection("Server=(local);Database=URLs;Trusted_Connection=True"))
                {
                    using (SqlCommand sqlcom = sqlcon.CreateCommand())
                    {
                        sqlcom.CommandText = "INSERT INTO WEVRecordsTest (URL, Status) VALUES ('" + url + "','" + stat + "')";
                        sqlcon.Open();
                        sqlcom.ExecuteNonQuery();
                        sqlcon.Close();
                    }
                }
            }
            catch (SqlException se)
            {
                lblHist.Text = se.Message;
                lblHist.ForeColor = System.Drawing.Color.Red;
            }
        }
...