2010-10-09 7 views
1

Je crée une application C# simple qui permet à l'utilisateur de modifier les lignes d'une table dans une base de données. L'interface est très simple, il s'agit essentiellement d'une liste de lignes et de quelques boutons. Sélectionner une ligne et appuyer sur le bouton "Ajouter" ouvre un nouveau formulaire avec des zones de texte pour chaque colonne. Je veux que ces colonnes soient remplies avec les valeurs de la ligne sélectionnée. Après avoir lu quelques articles, j'ai trouvé que la manière simple de faire ceci est probablement de lier la propriété Text du TextBox à un DataSource. Donc je stocke les valeurs de la base de données dans un objet DataTable, avec le plan de récupérer le DataRow sélectionné et de le lier à la TextBox. Ceci est la ligne que j'utilise:C# Bind TextBox vers une ligne spécifique de DataTable

productNameTextBox.DataBindings.Add(new Binding("Text", productRow, "Name")); 

Le résultat est l'exception suivante:

Une exception de première chance de type 'System.ArgumentException' a eu lieu dans System.Windows.Forms.dll Can not liez à la propriété ou à la colonne Nom sur la source de données . Nom du paramètre: dataMember

Et oui, la colonne "Nom" existe. Après lecture selon la documentation des liaisons (http://msdn.microsoft.com/fr-fr/library/4wkkxwcz(v=VS.80).aspx) et de nombreux exemples, il me semble que l'un doit se lier à la DataTable que la ligne est contenue dans le code suivant a fonctionné pour moi.

productNameTextBox.DataBindings.Add(new Binding("Text", productRow.Table, "Name")); 

Sauf qu'il définit toujours la valeur de la zone de texte à la première ligne. Comment spécifier la ligne à utiliser?

Répondre

1

Plutôt que la ligne, utilisez le DataRowView que vous obtenez à partir d'un DataView. Iirc est configuré pour une liaison flexible (personnalisée) via ICustomTypeDescriptor.

+0

Ah, merci. J'obtiens en fait mon DataRow à partir d'un DataRowView qui est renvoyé par l'élément selectedItem d'une liste. Je vais essayer. – kkrizka

+0

Fonctionne magnifiquement. Merci! – kkrizka

Questions connexes