Asp.net:使用blkCopy上传Excel文件并添加用户定义的列

本文关键字:添加 用户 定义 文件 Excel net 使用 blkCopy 上传 Asp | 更新日期: 2023-09-27 18:34:24

目前我的程序正在通过浏览器将excel文件上传到服务器。然后,在服务器上读取该 excel 文件,并将其值放置在数据库中。我要解决的问题是我想再添加一列,但我希望它是用户从浏览器中定义的,但我看不到任何方法,因为我使用的是 bulkCopy。

我想做的是允许用户在文本框(例如 MAR12 或 APR12(中添加文本,然后上传 excel 文件以及要添加到 excel 文件填充的每一列中的文件。谁能帮我解决问题。谢谢

string tableRows= "SELECT [id],[DateEntered],[User_ID] FROM [EPG$]";          
string EPGTableName = "tableName";               table in the database

这是将 excel 文件复制到数据库的地方:

        using (OleDbConnection connection = new OleDbConnection(connStr))
        {
            OleDbCommand command = new OleDbCommand(tableRows, connection);
            connection.Open();
            // Create DbDataReader to Data Worksheet
            using (DbDataReader dr = command.ExecuteReader())
            {
                // SQL Server Connection String
                string sqlConnectionString = "SERVER=<server>;UID=schafc;Trusted_Connection=Yes;DATABASE=<database>;";
                // Bulk Copy to SQL Server
                using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
                {
                    bulkCopy.DestinationTableName = tableName;
                    bulkCopy.WriteToServer(dr);
                }
            }
        }

Asp.net:使用blkCopy上传Excel文件并添加用户定义的列

我不确定如何使用 DataReader 执行此操作,但可以使用 DataAdapter 和 DataTable 来完成。填充表,添加列(具有默认值(,然后将表传递给大容量副本而不是数据读取器。

using (OleDbDataAdapter adapter = new OleDbDataAdapter(tableRows, connStr))
{
    DataTable table = new DataTable();
    adapter.Fill(table);
    table.Columns.Add(new DataColumn("@ColumnName", typeof(string), string.Format("'{0}'", textboxvalue)));
    // SQL Server Connection String
    string sqlConnectionString = "SERVER=<server>;UID=schafc;Trusted_Connection=Yes;DATABASE=<database>;";
    // Bulk Copy to SQL Server
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
    {
        bulkCopy.DestinationTableName = tableName;
        bulkCopy.WriteToServer(table);
    }
}