0

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

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

我打算怎么做...
因为我在网络上发布了我的网络应用程序,托管在我的本地机器上...我上传的文件(桌面)的常用保存路径不起作用。
所以我想把它保存到一个也托管在我本地机器上的 SQL Server 上。

因此,我想我正在尝试:

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

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

4

1 回答 1

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;
            }
        }
于 2010-09-01T22:04:04.323 回答