J'essaie d'écrire dans une base de données, j'ai travaillé sur le following site. En particulier la fonction LoadARow
.SQL CE 3.5 - Ecrire dans une base de données
Je reçois l'erreur d'exécution
"System.IndexOutOfRangeException: A SqlCeParameter avec 'Value' ParameterName n'est pas contenue par ce SqlCeParamaterCollection
L'erreur fait référence à la ligne." Commande. Parameters ["@ Value"]. Value = num; ". La base de données que j'utilise a une colonne Value définie comme clé, et une colonne de texte
using (SqlCeConnection connect = new SqlCeConnection("Data Source=C:\\Users\\mike\\Documents\\database.sdf"))
{
connect.Open();
string text = "test";
int num = 0;
using (SqlCeCommand command = new SqlCeCommand("insert into Data Table values (@Value, @Text)", connect))
{
command.Parameters.Add("@Text", SqlDbType.NVarChar);
command.Parameters["@Value"].Value = num;
command.Parameters.AddWithValue("@Text", text);
command.ExecuteNonQuery();
}
}
Merci pour les réponses rapides. Les deux solutions ont pris soin de l'erreur, mais maintenant j'ai "System.Data.SqlServerCe.SqlCeException: Il y avait une erreur d'analyse de la requête. [Numéro de ligne de jeton = 1, décalage de ligne de jeton = 18]" à command.ExecuteNonQuery(); – Mike
Quel est le nom de votre table? Votre requête devrait lire "insert into [nom_table] valeurs ...", donc je devine que votre nom de table est "Data_Table" et la requête devrait être "insérer dans les valeurs Data_Table ...". Veuillez également accepter la réponse que vous préférez, en cochant la case à gauche de la réponse. – WillfulWizard
Le dernier problème a fini par être un problème de nommage, les noms de tables ne semblent pas pouvoir contenir d'espaces, donc le changement à Data_Table a fonctionné. Merci à tous ceux qui ont aidé. – Mike