FrankTan
FrankTan

Reputation: 1686

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

)

Upvotes: 0

Views: 418

Answers (1)

Abe Miessler
Abe Miessler

Reputation: 85046

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?

Upvotes: 1

Related Questions