T-student T-student - 1 year ago 124
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 Source

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?

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download