jinxiao880 2016-03-04 01:00 采纳率: 0%
浏览 944

.net mvc 4.0 仓库系统 导入功能

我是新手,这个问题已经困扰我一个星期了。是一个excel储存到数据库的功能,我写的和网上的都差不多,但是一直是报错,代码太多 也不好贴。“至少有一个参数没指定” 字段是对应的,但还是报错。有大神帮忙看下吗 可以有报酬,软妹币也没有关系,如果能帮我解决的话

  • 写回答

1条回答 默认 最新

  • 会飞的石头。 2023-07-12 18:59
    关注

    以下是一个完整的示例代码,将Excel数据导入到数据库中:

    using System;
    using System.Data;
    using System.Data.OleDb;
    using System.Data.SqlClient;
    using Excel = Microsoft.Office.Interop.Excel;
    
    namespace ExcelImportDemo
    {
        public class ExcelImporter
        {
            public void ImportExcelData(string excelFilePath, string tableName, string connectionString)
            {
                try
                {
                    // 创建Excel应用程序对象
                    Excel.Application excelApp = new Excel.Application();
    
                    // 打开Excel文件
                    Excel.Workbook workbook = excelApp.Workbooks.Open(excelFilePath);
    
                    // 获取第一个工作表
                    Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets[1];
    
                    // 获取Excel数据范围
                    Excel.Range range = worksheet.UsedRange;
    
                    // 获取行数和列数
                    int rowCount = range.Rows.Count;
                    int columnCount = range.Columns.Count;
    
                    // 创建连接对象
                    using (SqlConnection connection = new SqlConnection(connectionString))
                    {
                        // 打开数据库连接
                        connection.Open();
    
                        // 构建插入SQL语句
                        string insertSql = $"INSERT INTO {tableName} VALUES ";
    
                        // 遍历Excel数据并构建插入语句
                        for (int row = 2; row <= rowCount; row++) // 从第2行开始,忽略表头
                        {
                            insertSql += "(";
    
                            for (int col = 1; col <= columnCount; col++)
                            {
                                string cellValue = range.Cells[row, col].Value.ToString();
                                
                                // 对于字符串类型的数据,需要添加单引号
                                if (range.Cells[row, col].NumberFormat == "@")
                                {
                                    cellValue = $"'{cellValue}'";
                                }
    
                                insertSql += cellValue;
    
                                // 如果不是最后一列,则添加逗号分隔
                                if (col != columnCount)
                                {
                                    insertSql += ",";
                                }
                            }
    
                            insertSql += ")";
    
                            // 如果不是最后一行,则添加逗号分隔
                            if (row != rowCount)
                            {
                                insertSql += ",";
                            }
                        }
    
                        // 执行插入操作
                        using (SqlCommand command = new SqlCommand(insertSql, connection))
                        {
                            command.ExecuteNonQuery();
                        }
    
                        // 关闭数据库连接
                        connection.Close();
                    }
    
                    // 关闭Excel应用程序对象
                    excelApp.Quit();
                }
                catch (Exception ex)
                {
                    // 处理异常
                    Console.WriteLine($"导入Excel数据发生错误:{ex.Message}");
                }
            }
        }
    }
    

    在上面的示例代码中,需要传入Excel文件的路径、表名和数据库连接字符串作为参数,并使用ADO.NET的SqlConnectionSqlCommand来执行插入操作。请确认数据库表的结构和Excel文件中的列名和类型匹配。

    请注意,在导入Excel数据之前,请安装运行Excel的机器上是否已经安装了Microsoft Office相应的库,并在项目中引用Microsoft.Office.Interop.Excel库。

    希望这份代码可以帮助到你,如有其他问题,请发信息。祝你成功导入Excel数据!

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型