【发布时间】:2017-01-13 23:46:58
【问题描述】:
我有这样的表格导入数据 Excel:
当我选择文件 Excel 然后按进程时,我的表单将显示进程进度条控件 devexpress。
我的代码:
string constr = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + txtPath.Text + "; Extended Properties =\"Excel 8.0; HDR = Yes;\";";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand ocmd = new OleDbCommand("SELECT * FROM[Sheet1$]", con);
con.Open();
OleDbDataReader odr = ocmd.ExecuteReader();
string kode = "";
string nama = "";
string satuan = "";
string isAktif = "";
string kodeRek = "";
while (odr.Read())
{
//get value from excel file column
kode = odr[0].ToString();
nama = odr[1].ToString();
satuan = odr[2].ToString();
isAktif = odr[3].ToString();
kodeRek = odr[4].ToString();
//connection
if (koneksi_manual.con.State == ConnectionState.Open)
{
koneksi_manual.con.Close();
}
koneksi_manual.con.Open();
//insert data excel to oracle database
OracleCommand cd = new OracleCommand();
cd.CommandText = @"INSERT INTO RAWMATERIAL(ID_BAHAN, KODE_BAHAN, NAMA_BAHAN, UNIT, ISAKTIF, JENIS_BAHAN,
HARGA_BAHAN, CREATEDBY, CREATEDDATE, MODIFIEDBY, MODIFIEDDATE)
(SELECT SQ_BAHAN.NEXTVAL, '" + kode + "', '" + nama + "', '" + satuan + "', '" + isAktif +
"', '" + null + "', '" + null + "', '" + Program.UserLogin + "', '" + DateTime.Now +
"', '" + Program.UserLogin + "', '" + DateTime.Now +
"' FROM DUAL WHERE NOT EXISTS(SELECT * FROM RAWMATERIAL WHERE NAMA_BAHAN='" + nama + "'))";
cd.Connection = koneksi_manual.con;
cd.ExecuteReader();
}
odr.Close();
当我将数据从 Excel 插入 Oracle 数据库时,它运行良好。
谁能建议在将数据从 Excel 插入 Oracle 数据库期间如何显示进度条控制过程?
【问题讨论】:
标签: c# excel winforms devexpress progress-bar