T-student T-student - 21 days ago 5
C# Question

c# OleDbCommand Overflow

I have this simple class which should perform a normal

INSERT INTO
a table, but
ExecuteNonQuery
give me:
OVERFLOW ERROR
.
Can you tell me why? Please.

OleDbCommand cmd = new OleDbCommand(selectSQLNewData, con);
OleDbDataReader reader = cmd.ExecuteReader();

OleDbCommand cIns = new OleDbCommand();
string str = "insert into NORMALIZZATI (id,comune,provincia,via_ufficiale,civico,frazione,cap,codiceIstat1,codiceIstat2,codiceIstat3,codiceIstat4,qualita,xdef,ydef) VALUES (@id,@comune,@provincia,@via_ufficiale,@civico,@frazione,@cap,@codiceIstat1,@codiceIstat2,@codiceIstat3,@codiceIstat4,@qualita,@xdef,@ydef);";


while (reader.Read())
{
string clid = reader["CUSTOMER_ID"].ToString(); //selezionare la chiave primaria
string indirizzo = reader["INDIRIZZO"].ToString(); //selezionare l'input al normalizzatore
string postalcode = reader["POSTALCODE"].ToString(); //input al normalizzatore
string citta = reader["CITTA"].ToString();
string prov = reader["PROV"].ToString();

///chiama il processo di normalizzazione su questi dati, ritorna un output ... da inserire nella tabella.
ServiceReference.ArrayOfString normalizzatore = norm.Esegui("TANGARIF", "4w3cC+naG8FnaHxH3ab/BA==", 2, citta, indirizzo, prov);

////prendere il risultato della normalizzazione, cosa prendere ??
//se vanno bene:

cIns = new OleDbCommand();
cIns.Connection = con;
cIns.CommandText = str;
cIns.Parameters.AddWithValue("@id", clid);
cIns.Parameters.AddWithValue("@comune", normalizzatore[7]);
cIns.Parameters.AddWithValue("@provincia", normalizzatore[6]);
cIns.Parameters.AddWithValue("@via_ufficiale", normalizzatore[7]); /// da dove prendo la via ufficiale?
cIns.Parameters.AddWithValue("@civico", normalizzatore[13]);
cIns.Parameters.AddWithValue("@frazione", normalizzatore[8]);
cIns.Parameters.AddWithValue("@cap", normalizzatore[27]);
cIns.Parameters.AddWithValue("@codiceIstat1", normalizzatore[14]);
cIns.Parameters.AddWithValue("@codiceIstat2", normalizzatore[15]);
cIns.Parameters.AddWithValue("@codiceIstat3", normalizzatore[16]);
cIns.Parameters.AddWithValue("@codiceIstat4", normalizzatore[17]);
cIns.Parameters.AddWithValue("@qualita", normalizzatore[43]);
cIns.Parameters.AddWithValue("@xdef", (normalizzatore[38]));
cIns.Parameters.AddWithValue("@ydef", (normalizzatore[39]));
cIns.ExecuteNonQuery();



}


Table Definition:

CREATE TABLE NORMALIZZATI
(

id integer primary key,
comune char(200),
provincia char(200),
via_ufficiale char(200),
civico char(200),
frazione char(200),
cap char(5),
codiceIstat1 char(200),
codiceIstat2 char(200),
codiceIstat3 char(200),
codiceIstat4 char(200),
qualita char(200),
xdef Text,
ydef Text

)

Answer

I would guess one of the parameters you are passing in is of greater length than the column you are trying to insert into. Can you post your table definition?