Tipi di dati non corrispondenti nell'espressione criterio. [Access]

lunedì 22 settembre 2008 - 18.54

Terzinaccio Profilo | Newbie

in Access ho questa query
INSERT INTO Ubicazioni ( Nome, fkSedeAzienda )
VALUES (@Nome, @fkSedeAzienda);

e la eseguo con il codice da c#
OleDbCommand cm = new OleDbCommand();
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "SP_INSERIMENTOUBICAZIONE";
cm.Parameters.AddWithValue("fkSedeAzienda", mSede.ToString());
cm.Parameters.AddWithValue("Nome", txtName.Text);
cm.Connection = Program.connglobale;
Program.connglobale.Open();
cm.ExecuteNonQuery();


}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Program.NomeProgetto, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (Program.connglobale.State == ConnectionState.Open)
Program.connglobale.Close();
cm.Parameters.Clear();
cm.Dispose();
}

come ho sempre fatto in sql ma mi da errore:
Tipi di dati non corrispondenti nell'espressione criterio.
in effetti SedeAzienda è numerico ma come gli devo passare allora un valore numerico?

Grazie a tutti

lbenaglia Profilo | Guru

>cm.Parameters.AddWithValue("fkSedeAzienda", mSede.ToString());

Ciao Denis,

Nel caso fkSedeAzienda sia un Integer a 32 bit, io modificherei quella riga in:

cm.Parameters.Add("fkSedeAzienda", OleDbType.Integer).Value = mSede.ToString()

Come puoi notare ho espresso in modo inequivocabile il data type della colonna.

>Grazie a tutti
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Terzinaccio Profilo | Newbie

Anche se metto in questo modo mi da lo stesso errore:

OleDbParameter parametri;
parametri = cm.Parameters.Add("@fkSedeAzienda", OleDbType.Integer);
parametri.Direction = ParameterDirection.Input;
parametri.Value = mSede;

parametri = cm.Parameters.Add("@nome", OleDbType.VarChar, 50);
parametri.Direction = ParameterDirection.Input;
parametri.Value = "'Andrea'";

lbenaglia Profilo | Guru

>Anche se metto in questo modo mi da lo stesso errore:
Qual è il data type della colonna fkSedeAzienda?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Terzinaccio Profilo | Newbie

fkSedeAnagrafica sul db è di tipo numerico decimale (18,0)
Anche se metto OleDbType.Decimal sul codice mi da sempre lo stesso errore!!

lbenaglia Profilo | Guru

>fkSedeAnagrafica sul db è di tipo numerico decimale (18,0)
>Anche se metto OleDbType.Decimal sul codice mi da sempre lo stesso
>errore!!
Mi spiace, non so come aiutarti... anche se OVVIAMENTE avrai provveduto ad utilizzare il punto "." come separatore decimale, vero?

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5