ich kopiere per SQLBulk Datensätze aus einem ExcelFile (OleDB Connection und Reader) in eine SQL-Server DB.
Hierbei soll er mir in einem Label und einer Progressbar den Status anzeigen.
Wie ich es auch anstelle, er macht es nicht, bzw. nicht richt.
Per progressBar1.Maximum = dr.FieldCount
geht er 3 Schritte und das zeigt er auch richtig im Label an.
Hier mal ein Teil des Source, ich hoffe ich könnt mir helfen!
string sClearSQL = "DELETE FROM " + sSQLTable;
SqlConnection SqlConn = new SqlConnection(sSqlConnectionString);
SqlCommand SqlCmd = new SqlCommand(sClearSQL, SqlConn);
SqlConn.Open();
try
{
SqlCmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
SqlConn.Close();
//Series of commands to bulk copy data from the excel file into our SQL table
OleDbConnection OleDbConn = new OleDbConnection(sExcelConnectionString);
OleDbCommand OleDbCmd = new OleDbCommand(myExcelDataQuery, OleDbConn);
OleDbConn.Open();
OleDbDataReader dr = OleDbCmd.ExecuteReader();
SqlBulkCopy bulkCopy = new SqlBulkCopy(sSqlConnectionString);
bulkCopy.DestinationTableName = sSQLTable;
while (dr.Read())
{
int i = 0;
for (i = 0; i < dr.VisibleFieldCount; i++)
{
progressBar1.Value = i++;
progressBar1.PerformStep();
int lbltxt = 0 + i;
label1.Text = lbltxt.ToString();
}
bulkCopy.WriteToServer(dr);
}
OleDbConn.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
}
}

Hilfe
Neues Thema
Antworten
Nach oben

