使用c#将数据从excel导入mysql

时间:2013-04-02 09:44:45

标签: c# mysql excel

我有以下显示的Excel文件

enter image description here

我想读一读所有学校名称和学校地址&将它们插入mySql数据库的SchoolInfo表中。

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

我正在读这样的excel表。

public static void Import(string fileName)     {         string strConn =“Provider = Microsoft.ACE.OLEDB.12.0; Data Source =”+ fileName +                          “;扩展属性= \”Excel 12.0; HDR =否; 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表中。

1 个答案:

答案 0 :(得分:0)

请尝试以下步骤:

  1. 阅读Excel表格
  2. 首先,您必须创建与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将select命令的输出存储到DataSet中

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

      为整个表格迭代地将单元格数据提取到变量中
      variable = xlDataset.Tables[0].Rows[row_value][column_value].ToString() ;
      
      1. 将变量中的数据写入MySQL数据库
      2. 现在使用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()