savepath?将excel保存到sql?

时间:2010-08-13 18:31:34

标签: sql excel file-upload oledb sqlconnection

我真的很困惑如何去做这件事。

  • 我希望能够使用我的网页应用程序上传Excel工作表 文件上传控件。
  • 接下来,我想阅读第一行下的每一行。 (因此从第2行开始,第1行将是列标题)。
  • 最后,我想将我读过的字符串传递给另一种方法,即用它做我想做的事情然后发布到gridview。

我打算怎么做...
由于我在网络上发布了我的网络应用程序,托管在我的本地方框上...我上传的文件(桌面)的常用保存路径不起作用。
所以我想把它保存到一个同样托管在我本地盒子上的SQL Server上。

因此,我想我想:

  • 将上传的excel保存到SQL数据库中。
  • 从excel中读取每一行并将其传递给预期的方法。

好的,这太令人困惑了。必须有一个更简单的方法来做到这一点! (我真的需要一个SQL数据库吗?)
哦,还有我的savePath的好主意吗?

1 个答案:

答案 0 :(得分:0)

还没有真正解决这个问题。但是使用像这样的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;
            }
        }