Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Tipi di dati non corrispondenti nell'espressione criterio c# [Access]
lunedì 22 settembre 2008 - 18.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Terzinaccio
Profilo
| Newbie
28
messaggi | Data Invio:
lun 22 set 2008 - 18:56
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
Vash
Profilo
| Junior Member
81
messaggi | Data Invio:
lun 22 set 2008 - 19:25
>in Access ho questa query
>INSERT INTO Ubicazioni ( Nome, fkSedeAzienda )
>VALUES (@Nome, @fkSedeAzienda);
non è che l'errore sta sul nome??
nome se è di tipo string va tra gli apici
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 22 set 2008 - 21:37
>Tipi di dati non corrispondenti nell'espressione criterio.
>in effetti SedeAzienda è numerico ma come gli devo passare allora
>un valore numerico?
io lo passerei così:
command.Parameters.Add(new OleDbParameter("sede", sede));
se "sede" è un numerico lui si arrangia da solo a creare il parametro con il tipo appropriato (non sempre, vedi le date ma questo è un altro discorso).
La cosa che mi rimane ignota, è che usi OleDb per accedere a sql...come mai non usi il provider SqlClient?
Ovvero SqlConnection, SqlCommand etc...di fatto il provider "nato" per Sql, che è praticamente uguale a livello di programmazione, ma è ottimizzato per sql, quindi ne guadagni di prestazioni...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Terzinaccio
Profilo
| Newbie
28
messaggi | Data Invio:
lun 22 set 2008 - 23:38
perchè uso access e non sql...purtroppo per questo uso oledb..almeno cosi sempre mi hanno spiegato...che sqlclient si usa con sql server mentre per access si usa oledb
Terzinaccio
Profilo
| Newbie
28
messaggi | Data Invio:
mar 23 set 2008 - 10:00
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'";
ho provato anche a mettere cosi ma nulla mi da sempre lo stesso errore...se metto gli apici sulla query poi mi mette sul db @Nome e non il valore!!
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 23 set 2008 - 21:50
>perchè uso access e non sql...purtroppo per questo uso oledb..almeno
>cosi sempre mi hanno spiegato...che sqlclient si usa con sql
si si è corretto, avevo inteso che parlassi di sql perchè sotto hai scritto "...come ho sempre fatto in sql..." pensavo ti riferissi a sql server.
Cmq, il fatto che ancora non capisco è perchè il tipo di comando hai messo "OledbStoredProcedure" se usi access e quindi le stored non ci sono nemmeno?
Metti il tipo di comando su "Text", ovvero che gli stai passando una stringa sql da eseguire sul database, e riprova.
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
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 !