0

我有这个简单的类,它应该执行一个普通INSERT INTO的表格,但是ExecuteNonQuery给我:OVERFLOW ERROR。你能告诉我为什么吗?请。

  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();



            } 

表定义:

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

)
4

1 回答 1

1

我猜您传入的参数之一的长度大于您尝试插入的列的长度。你能发布你的表定义吗?

于 2012-05-31T18:01:48.230 回答