Valeur de retour de OleDbCommand

sqlQuery = "SELECT [ID] from [users] WHERE CallerName=@CallerName";

OleDbConnection conn = new OleDbConnection(connectionString);
conn.Open();
cmd = new OleDbCommand(sqlQuery, conn);
cmd.CommandText = sqlQuery;
cmd.Parameters.Add("@CallerName", OleDbType.VarChar).Value = labelProblemDate.Text.Trim();
cmd.Parameters["@CallerName"].Value = name;
cmd.ExecuteNonQuery();          
conn.Close();

M'a dit que c'est la façon de lire les données d'une requête de sélection à l'aide de Paramètres, mais ça ne fonctionne pas. Je pense que j'ai fait quelque chose de mal.

Je suis en utilisant des WinForms et Microsoft Access 2007

Quels messages d'erreur en êtes-vous? Aussi, vous semblez être confus avec votre @CallerName paramètre. Qu'est-ce que la variable "nom" et aussi, ExecuteNonQuery de ne pas effectuer une sélection.
Vous voulez que tous les ID de ce nom, ou seulement un seul? Si ce dernier, il serait préférable de SELECT TOP 1 ID FROM [users] WHERE CallerName=@CallerName. Ensuite, utilisez ExecuteScalar(lien à l'intérieur) afin de ne récupérer que l'on choisi d'identité (le cas échéant).

OriginalL'auteur Cocoa Dev | 2012-04-27