Ich habe eine Excel-Datei zu einem DataTable gelesen, aber nur die erste Zeile füllt die gesamte MS Access-Datenbank. Ich habe bestätigt, dass die Daten in der DataTable und in der Excel-Datei identisch sind. Mein Code ist unten gezeigt:Der erste Eintrag von DataTable füllt die gesamte Access-Datenbank
using (OleDbConnection myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + outFilePath + ";Extended Properties=dBase IV"))
{
OleDbCommand cmd = new OleDbCommand();
string line = "001";
for (int n = 0; n < dt.Rows.Count; ++n)
{
if (String.IsNullOrEmpty(dt.Rows[n].Field<string>(0))) break;
cmd.CommandText = "INSERT INTO " + FileName +
"([JNL],[LINE],[TYPE],[DRACC],[CRACC],[EXPDRACC],[EXPCRACC]," +
"[DOCDATE],[REF],[DRAMT],[CRAMT]) VALUES (?,?,?,?,?,?,?,?,?,?,?)";
string inacc = dt.Rows[n].Field<string>(0);
string justNumbers = new String(inacc.Where(Char.IsDigit).ToArray());
string acc = String.Format("{0:##-######-#}", justNumbers);
string jnl = JNL;
string Ref = REF;
string type = TYPE;
int dramt = 0;
int cramt = 0;
if (type == "50") dramt = Convert.ToInt32(100 * dt.Rows[n].Field < double>(2));
else cramt = Convert.ToInt32(100 * dt.Rows[n].Field < double>(2));
cmd.Parameters.Add("@JNL", OleDbType.VarChar).Value = jnl;
cmd.Parameters.Add("@LINE", OleDbType.VarChar).Value = line;
cmd.Parameters.Add("@TYPE", OleDbType.VarChar).Value = type;
cmd.Parameters.Add("@DRACC", OleDbType.VarChar).Value = justNumbers;
cmd.Parameters.Add("@CRACC", OleDbType.VarChar).Value = justNumbers;
cmd.Parameters.Add("@EXPDRACC", OleDbType.VarChar).Value = acc;
cmd.Parameters.Add("@EXPCRACC", OleDbType.VarChar).Value = acc;
cmd.Parameters.Add("@DOCDATE", OleDbType.Date).Value = DateTime.Now;
cmd.Parameters.Add("@REF", OleDbType.VarChar).Value = Ref;
cmd.Parameters.Add("@DRAMT", OleDbType.Integer).Value = dramt;
cmd.Parameters.Add("@CRAMT", OleDbType.Integer).Value = cramt;
cmd.CommandType = CommandType.Text;
cmd.Connection = myCon;
myCon.Open();
cmd.ExecuteNonQuery();
myCon.Close();
}
}
Wie löst man diese Art von Problem?
Vielen Dank mein guter Herr! Es klappt! –