/// <summary>
///
/// 功能:
///
/// 将任意excel导入数据库
///
/// 异常:
///
///
/// 注意:
///
/// 该方法是把所有excel内容导入数据库,并不会检查重复数据
///
/// </summary>
/// <param name="tableName">数据库中对应的表名</param>
/// <param name="path">excel路径</param>
/// <returns>导入成功则返回true</returns>
public static void InsertData(string tableName, string path ,out double progress) {
progress = 0;
DataSet ds = new DataSet();
string strCon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + path + "; Extended Properties='Excel 12.0;HDR=YES'";
OleDbConnection cn = new OleDbConnection(strCon);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strCon);
try {
da.Fill(ds, tableName);
DataTable dt = ds.Tables[tableName];
//构造insert语句
string sql_insert = "";
string base_insert = "insert into [" + tableName + "] (";
for (int i = 0; i < dt.Columns.Count; i++) {
if (i != dt.Columns.Count - 1) {
base_insert += dt.Columns[i].ColumnName + ",";
}
else
base_insert += dt.Columns[i].ColumnName + ") values (";
}
for (int i = 0; i < dt.Rows.Count; i++) {
sql_insert = base_insert;
for (int j = 0; j < dt.Columns.Count; j++) {
if (j != dt.Columns.Count - 1) {
sql_insert += "'" + dt.Rows[i][j] + "',";
}
else
sql_insert += "'" + dt.Rows[i][j] + "')";
}
//设置进度变量
progress = (double)(i + 1) / dt.Rows.Count;
//执行insert语句
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql_insert, null);
}
}
catch (Exception ex) {
throw ex;
}
}
【数据库】将Excel导入数据库
最新推荐文章于 2025-04-14 22:26:17 发布