20 messaggi dal 12 luglio 2006
Salve sto facendo un ciclo su un file e devo aggiornare una tabella di un database access.

Solo che a "random" ogni tanto non riesce a prendere i valori del campo V01 e aggiorna mettendo il campo a NULL, nonostante la variabile V01 è piena, quindi ne stringa vuota ne nulla.

Ma non capisco il perchè, può essere che l'oggetto command sia troppo lento nell'aggiornamento sul db access? Eventualmente come posso risolvere il problema

Ecco il codice:

using (StreamReader sr = new StreamReader("c:\\file.csv", System.Text.Encoding.GetEncoding("iso-8859-1")))
{
int i = 0;
string line;


while ((line = sr.ReadLine()) != null)
{
string[] arrLine = line.Split(delimiterChars);

ID = "";
mitem = "";
V01 = "";

ID = arrLine[0].ToString().Trim();
mitem = arrLine[1].ToString().Trim();
V01 = arrLine[2].ToString().Trim();

sql = @"UPDATE tabella SET v01=@V01 WHERE id=@ID";

cmd = new OleDbCommand(sql, conn);
cmd.Parameters.Add("@V01", OleDbType.VarChar, 30);
cmd.Parameters["@V01"].Value = V01;
cmd.Parameters.Add("@ID", OleDbType.Numeric);
cmd.Parameters["@ID"].Value = ID;

rows = cmd.ExecuteNonQuery();

i++;
}
}
spaghetto wrote:
Salve sto facendo un ciclo su un file e devo aggiornare una tabella di un database access.

Solo che a "random" ogni tanto non riesce a prendere i valori del campo V01 e aggiorna mettendo il campo a NULL, nonostante la variabile V01 è piena, quindi ne stringa vuota ne nulla.

se stai usando access, le query parametriche hanno bisogno di "?" come segnaposto e successivi parametri definiti in base alla posizione. che io ricordi se si usa access non è supportata la forma con parametro nominale.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.