Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DataGridView

6 réponses
Avatar
Gilbert Tordeur
Bonjour. Ma DataGridView affiche le contenu d'une DataTable, avec
possibilité de mise à jour. Je souhaite interdire la modification de la clé
primaire ; pour ce faire, j'ai mis la colonne correspondante en ReadOnly. Le
problème survient à la création d'un nouvel enregistrement, car je ne peux
pas spécifier la valeur de la clé primaire !
Donc, comment autoriser la modification de ce champ sur un nouvel
enregistrement, mais pas sur un ancien ? Merci de votre aide.
Gilbert

6 réponses

Avatar
Gilles TOURREAU
Le Tue, 28 Aug 2007 14:47:12 +0200, Gilbert Tordeur
a écrit:

é de mise à jour. Je souhaite interdire la modification de la clé
primaire ; pour ce faire, j'ai mis la colonne correspondante en
ReadOnly. Le
problème survient à la création d'un nouvel enregistrement, car je ne
peux
pas spécifier la valeur de la clé primaire !
Donc, comment autoriser la modification de ce champ sur un nouvel
enregistrement, mais pas sur un ancien ? Merci de votre aide.
Gilbert



Il faut que par programmation vous attaquez directement votre source de
données (ici DataTable).

Est-ce que votre DataGridView est liée directement par un DataTable ? ou
un BindingSource ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Gilbert Tordeur
Ma dataGridView est liée à une DataTable (appartenant à un DataSet) par
assignation des propriétés DataSource et DataMember dans le code.
Gilbert

"Gilles TOURREAU" a écrit dans le message de news:

Le Tue, 28 Aug 2007 14:47:12 +0200, Gilbert Tordeur
a écrit:

é de mise à jour. Je souhaite interdire la modification de la clé
primaire ; pour ce faire, j'ai mis la colonne correspondante en
ReadOnly. Le
problème survient à la création d'un nouvel enregistrement, car je ne
peux
pas spécifier la valeur de la clé primaire !
Donc, comment autoriser la modification de ce champ sur un nouvel
enregistrement, mais pas sur un ancien ? Merci de votre aide.
Gilbert



Il faut que par programmation vous attaquez directement votre source de
données (ici DataTable).

Est-ce que votre DataGridView est liée directement par un DataTable ? ou
un BindingSource ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Avatar
Gilles TOURREAU
Le Tue, 28 Aug 2007 16:30:18 +0200, Gilbert Tordeur
a écrit:

Ma dataGridView est liée à une DataTable (appartenant à un DataSet) par
assignation des propriétés DataSource et DataMember dans le code.
Gilbert

"Gilles TOURREAU" a écrit dans le message de
news:

Le Tue, 28 Aug 2007 14:47:12 +0200, Gilbert Tordeur
a écrit:

é de mise à jour. Je souhaite interdire la modification de la clé
primaire ; pour ce faire, j'ai mis la colonne correspondante en
ReadOnly. Le
problème survient à la création d'un nouvel enregistrement, car je ne
peux
pas spécifier la valeur de la clé primaire !
Donc, comment autoriser la modification de ce champ sur un nouvel
enregistrement, mais pas sur un ancien ? Merci de votre aide.
Gilbert



Il faut que par programmation vous attaquez directement votre source de
données (ici DataTable).

Est-ce que votre DataGridView est liée directement par un DataTable ? ou
un BindingSource ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Ok,

Dans ce cas vous pouvez accédez à l'enregistrement associé à une ligne du
DataGridView comme ceci :

DataRow dr;
dr = ((DataRow)((DataRowView)MonDGV.Rows[i].DataBoundItem).Row);
dr["MaCléPrimaire"] = ...

NOTE : Si vous avez un DataSetTypé remplacez DataRow, par la version
typé...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Gilles TOURREAU
Le Tue, 28 Aug 2007 16:49:35 +0200, Gilles TOURREAU
a écrit:

Le Tue, 28 Aug 2007 16:30:18 +0200, Gilbert Tordeur
a écrit:

Ma dataGridView est liée à une DataTable (appartenant à un DataSet) par
assignation des propriétés DataSource et DataMember dans le code.
Gilbert

"Gilles TOURREAU" a écrit dans le message de
news:

Le Tue, 28 Aug 2007 14:47:12 +0200, Gilbert Tordeur
a écrit:

é de mise à jour. Je souhaite interdire la modification de la clé
primaire ; pour ce faire, j'ai mis la colonne correspondante en
ReadOnly. Le
problème survient à la création d'un nouvel enregistrement, car je ne
peux
pas spécifier la valeur de la clé primaire !
Donc, comment autoriser la modification de ce champ sur un nouvel
enregistrement, mais pas sur un ancien ? Merci de votre aide.
Gilbert



Il faut que par programmation vous attaquez directement votre source de
données (ici DataTable).

Est-ce que votre DataGridView est liée directement par un DataTable ?
ou
un BindingSource ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Ok,

Dans ce cas vous pouvez accédez à l'enregistrement associé à une ligne
du DataGridView comme ceci :

DataRow dr;
dr = ((DataRow)((DataRowView)MonDGV.Rows[i].DataBoundItem).Row);
dr["MaCléPrimaire"] = ...

NOTE : Si vous avez un DataSetTypé remplacez DataRow, par la version
typé...

Cordialement




Désolé... C'est du C#...

Voilà le code VB :

Dim dr as DataRow;

dr = CType(DataGridView1.Rows(i).DataBoundItem, DataRowView).Row;
dr("MaCléPrimaire") = ...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Gilbert Tordeur
Merci pour toutes ces infos. Mais comment puis-je interdire toute
modification de la clé primaire dans la grille, sauf pour une nouvelle ligne
créée ?
Gilbert

"Gilles TOURREAU" a écrit dans le message de news:

Le Tue, 28 Aug 2007 16:49:35 +0200, Gilles TOURREAU
a écrit:

Le Tue, 28 Aug 2007 16:30:18 +0200, Gilbert Tordeur
a écrit:

Ma dataGridView est liée à une DataTable (appartenant à un DataSet) par
assignation des propriétés DataSource et DataMember dans le code.
Gilbert

"Gilles TOURREAU" a écrit dans le message de
news:

Le Tue, 28 Aug 2007 14:47:12 +0200, Gilbert Tordeur
a écrit:

é de mise à jour. Je souhaite interdire la modification de la clé
primaire ; pour ce faire, j'ai mis la colonne correspondante en
ReadOnly. Le
problème survient à la création d'un nouvel enregistrement, car je ne
peux
pas spécifier la valeur de la clé primaire !
Donc, comment autoriser la modification de ce champ sur un nouvel
enregistrement, mais pas sur un ancien ? Merci de votre aide.
Gilbert



Il faut que par programmation vous attaquez directement votre source de
données (ici DataTable).

Est-ce que votre DataGridView est liée directement par un DataTable ?
ou
un BindingSource ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Ok,

Dans ce cas vous pouvez accédez à l'enregistrement associé à une ligne
du DataGridView comme ceci :

DataRow dr;
dr = ((DataRow)((DataRowView)MonDGV.Rows[i].DataBoundItem).Row);
dr["MaCléPrimaire"] = ...

NOTE : Si vous avez un DataSetTypé remplacez DataRow, par la version
typé...

Cordialement




Désolé... C'est du C#...

Voilà le code VB :

Dim dr as DataRow;

dr = CType(DataGridView1.Rows(i).DataBoundItem, DataRowView).Row;
dr("MaCléPrimaire") = ...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Avatar
Gilles TOURREAU
Le Wed, 29 Aug 2007 11:51:52 +0200, Gilbert Tordeur
a écrit:

Merci pour toutes ces infos. Mais comment puis-je interdire toute
modification de la clé primaire dans la grille, sauf pour une nouvelle
ligne
créée ?
Gilbert

"Gilles TOURREAU" a écrit dans le message de
news:

Le Tue, 28 Aug 2007 16:49:35 +0200, Gilles TOURREAU
a écrit:

Le Tue, 28 Aug 2007 16:30:18 +0200, Gilbert Tordeur
a écrit:

Ma dataGridView est liée à une DataTable (appartenant à un DataSet)
par
assignation des propriétés DataSource et DataMember dans le code.
Gilbert

"Gilles TOURREAU" a écrit dans le message de
news:

Le Tue, 28 Aug 2007 14:47:12 +0200, Gilbert Tordeur
a écrit:

é de mise à jour. Je souhaite interdire la modification de la clé
primaire ; pour ce faire, j'ai mis la colonne correspondante en
ReadOnly. Le
problème survient à la création d'un nouvel enregistrement, car je
ne
peux
pas spécifier la valeur de la clé primaire !
Donc, comment autoriser la modification de ce champ sur un nouvel
enregistrement, mais pas sur un ancien ? Merci de votre aide.
Gilbert



Il faut que par programmation vous attaquez directement votre source
de
données (ici DataTable).

Est-ce que votre DataGridView est liée directement par un DataTable ?
ou
un BindingSource ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Ok,

Dans ce cas vous pouvez accédez à l'enregistrement associé à une ligne
du DataGridView comme ceci :

DataRow dr;
dr = ((DataRow)((DataRowView)MonDGV.Rows[i].DataBoundItem).Row);
dr["MaCléPrimaire"] = ...

NOTE : Si vous avez un DataSetTypé remplacez DataRow, par la version
typé...

Cordialement




Désolé... C'est du C#...

Voilà le code VB :

Dim dr as DataRow;

dr = CType(DataGridView1.Rows(i).DataBoundItem, DataRowView).Row;
dr("MaCléPrimaire") = ...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Le plus simple est de mettre la colonne de la clé primaire à ReadOnly =
False, de traiter l'événement BeginEdit, et mettre e.Cancel à true pour
désactiver l'édition et false dans le cas contraire...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr