【问题标题】:Import data from excel to mysql using c#使用c#将数据从excel导入mysql
【发布时间】:2013-04-02 09:44:44
【问题描述】:

我有如下所示的 Excel 文件

我想读取第一个只读所有学校名称和学校地址并将它们插入到 mySql 数据库的 SchoolInfo 表中。

之后我想读取每所学校的数据并将其插入到 StudentInfo 表中,该表具有与 SchoolInfo 表关联的外键。

我正在阅读类似这样的 excel 表格。

公共静态无效导入(字符串文件名) { string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";扩展属性=\"Excel 12.0;HDR=No;IMEX=1\"";

    var output = new DataSet();

    using (var conn = new OleDbConnection(strConn))
    {
        conn.Open();

        var dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

        if (dt != null)
            foreach (DataRow row in dt.Rows)
            {
                string sheet = row["TABLE_NAME"].ToString();

                var cmd = new OleDbCommand("SELECT * FROM [+"+sheet+"+]", conn);
                cmd.CommandType = CommandType.Text;

                OleDbDataAdapter xlAdapter = new OleDbDataAdapter(cmd);

                xlAdapter.Fill(output,"School");
            }
    }

}

现在我在数据集的数据表中有数据,现在如何读取所需的数据并将其插入到我的 sql 表中。

【问题讨论】:

    标签: c# mysql excel


    【解决方案1】:

    尝试以下步骤:

    1. 从 Excel 工作表中读取

    首先,您必须创建与 Excel 文件的 OleDB 连接。

    String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + path + ";" +
    "Extended Properties=Excel 8.0;";
    OleDbConnection xlConn = new OleDbConnection(connectionString);
    xlConn.Open();
    

    这里的路径是指您的 Excel 电子表格的位置。例如。 "D:\abc.xls" 然后你必须查询你的表。为此,我们必须首先为表和列定义名称。点击这里了解如何。 现在创建命令对象。

    OleDbCommand selectCmd = new OleDbCommand("SELECT * FROM [Sheet1$]", xlConn);
    

    现在我们必须使用 DataAdapter 将选择命令的输出存储到 DataSet 中

    OleDbDataAdapter xlAdapter = new OleDbDataAdapter();
    objAdapter1.SelectCommand = selectCmd;
    DataSet xlDataset = new DataSet();
    xlAdapter.Fill(xlDataset, "XLData");
    
    1. 将数据保存到变量中

    现在使用

    将单元格数据迭代地提取到整个表格的变量中
    variable = xlDataset.Tables[0].Rows[row_value][column_value].ToString() ;
    
    1. 将变量中的数据写入 MySQL 数据库

    现在使用 ODBC 连接连接到 MySQL 数据库

    String mySqlConnectionString = "driver={MySQL ODBC 5.1 Driver};" +
    "server=localhost;" + "database=;" + "user=;" + "password=;";
    OdbcConnection mySqlConn = new OdbcConnection(mySqlConnectionString);
    mySqlConn.Open();
    

    使用已从 Excel 工作表中存储数据的变量构造您的 INSERT 语句。

    OdbcCommand mySqlInsert = new OdbcCommand(insertCommand, mySqlConn);
    mySqlInsert.ExecuteScalar()
    

    【讨论】:

    • 我知道我们怎样才能读取 excel 文件和所有文件。真正的问题是多个数据,即 school1、school2 等。如何操作以读取这些值
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2016-07-12
    • 1970-01-01
    相关资源
    最近更新 更多