【问题标题】:C# User interface when uploading excel spreadsheet to SQL Database via VS 2005通过 VS 2005 将 Excel 电子表格上传到 SQL 数据库时的 C# 用户界面
【发布时间】:2011-12-19 23:05:59
【问题描述】:

目前我有一个将 Excel 电子表格数据加载到 SQL 数据库中的网络。当页面加载时,所有参数都被硬编码在后面的代码中,所以我没有“浏览文件”和“上传”按钮。我想实现这两个按钮,但我不知道该怎么做。

我正在使用 C# 语言、Visual Studio 2005 和 SQL Server 2005。

以下是将excel数据导入数据库的代码:

importexcel.aspx.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.OleDb;
using System.Data.Common;
using System.Data.SqlClient;

public partial class ImportExcel : System.Web.UI.Page
{
    public static string path = @"c:\Documents and Settings\rhlim\My Documents\Visual Studio 2005\WebSites\insqlserver\studentsheet1.xls";
    public static string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=Excel 8.0;";

    protected void Page_Load(object sender, EventArgs e)
    {
        // Create Connection to Excel Workbook
        using (OleDbConnection connection =
                     new OleDbConnection(connStr))
        {
            OleDbCommand command = new OleDbCommand
                    ("Select StudentName,RollNo,Course FROM [Sheet1$]", connection);

            connection.Open();
            // Create DbDataReader to Data Worksheet
            using (DbDataReader dr = command.ExecuteReader())
            {
                // SQL Server Connection String
                string sqlConnectionString = "Data Source=<IP>;Initial Catalog=<database>;User ID=<userid>;Password=<password>";

                // Bulk Copy to SQL Server
                using (SqlBulkCopy bulkCopy =
                           new SqlBulkCopy(sqlConnectionString))
                {
                    bulkCopy.DestinationTableName = "tStudent";
                    bulkCopy.WriteToServer(dr);
                }
            }
        }
    }
}

以下是我当前 html 的代码:

importexcel.aspx

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="ImportExcel.aspx.cs" Inherits="ImportExcel" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title></title>
<script language="javascript" type="text/javascript">
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    </div>
    Please select a Excel spreadsheet to import:<br />     
        <asp:FileUpload ID="fupExcel" runat="server" /> 
        <br /> 
        <br /> 
<asp:Button ID="btnImport" runat="server"  
            Text="Import" onclick="btnImport_Click" />  
        <br />
        <br />
        <a href=http://localhost:1701/SoD>Click to go to main page</a>
        </form>

</body>
</html>

我不确定如何将 2 个按钮附加到我的背景代码,有人教我吗?最好有示例代码,非常感谢!

【问题讨论】:

  • 如果我没记错的话,你想实现两个按钮事件,一个用于浏览另一个用于上传,然后在浏览按钮中获取路径值,上传按钮用于剩余。

标签: c# sql-server visual-studio sql-server-2005 visual-studio-2005


【解决方案1】:

首先,页面加载中的代码只需要在if(IsPostBack) 或按钮单击时执行。

其次,(至少是现代的)浏览器不允许您更改输入文件字段的值,或者单击它。

你可能会尝试一些闪存上传的东西,但我不期待太多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多