web-dev-qa-db-fra.com

Renvoyer une valeur de colonne d'une table dans un ensemble de données

J'ai un ensemble de données avec deux tables. Je veux obtenir la valeur de la première colonne de la deuxième table et l'initialiser en une variable int.
Le nom de cette colonne était CONTACT_ID

J'ai essayé comme ça.

  int Contract_id = Convert.ToInt32(dsDiscounts.Tables[1].Columns[0]);

mais il montrait une erreur:

Impossible de convertir un objet de type "System.Data.DataColumn" en type "System.IConvertible".

quelqu'un peut-il m'aider s'il-vous-plaît

9
sindhu jampani

dsDiscounts.Tables[1].Columns[0] renvoie la définition de la colonne (type de données, légende, etc. défini par DataColumn instance). Bien sûr, la conversion de la définition de colonne en entier échoue.

Ce dont vous avez besoin, c'est de la valeur d'une cellule d'une ligne du tableau (supposez la première ligne). Vous devez utiliser la collection Rows pour accéder aux lignes du tableau. Une fois que vous êtes requis DataRow par son index, vous pouvez accéder aux cellules de la ligne par index , nom de colonne , objet de colonne, etc. Par exemple obtenir la valeur de cellule de la première ligne par nom de colonne:

 dsDiscounts.Tables[1].Rows[0]["CONTACT_ID"]
23

Essaye ça

int Contract_id = Convert.ToInt32(dsDiscounts.Tables[1].Rows[0]["CONTACT_ID"]);
2
Sachin