Zone de liste déroulante de la liaison de données montrant système.les données.datarowview
Je suis de liaison de zone de liste déroulante avec la source de données, displaymember, valuemember. Il fonctionne très bien sur mon ordinateur, mais il ne travaille pas dans des pc clients. Voici mon code source:
cbxAlloyBinding méthode est appelée à partir du Constructeur de l'objet UserControl.
private void cbxAlloyBinding()
{
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter("SELECT alloyName,alloyId FROM alloy", con);
adp.Fill(dt);
if (dt.Rows.Count > 0)
{
cbxMetal.DisplayMember = "alloyName";
cbxMetal.ValueMember = "alloyId";
cbxMetal.DataSource = dt;
}
else
{
cbxMetal.Text = "";
}
}
private void cbxMetal_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbxMetal.SelectedIndex != -1)
{
DataTable dt = new DataTable();
tempcmd = new SqlCommand("SELECT specification,alloyCode FROM alloy where alloyId='" + cbxMetal.SelectedValue + "'", con);
SqlDataAdapter adp = new SqlDataAdapter(tempcmd);
adp.Fill(dt);
if (dt.Rows.Count > 0)
{
txtSpecification.Text = dt.Rows[0]["alloyCode"].ToString();
txtSupplyConditions.Text = dt.Rows[0]["specification"].ToString();
cbxheatBinding();
}
else
{
txtSpecification.Text = "";
}
}
}
Ce me dérange de ces deux derniers jours et j'ai presque essayé toutes les astuces, mais il ne fonctionne toujours pas.
Du Client PC est sous Windows 7 ultimate, sql server 2005 et .net framework 3.5.
j'ai essayé beaucoup d'autres choses 1) faire en sorte dataview, puis en le passant à la source de données. 2) la prise de dataset, puis en le passant à la source de données. 3) Modification de la position de la source de données avant de displaymember et ValueMember, Après displaymember et ValueMember, entre les deux. Mais rien ne semble fonctionner sur le pc client.
Êtes-vous sûr que vous avez des privilèges et des droits d'exécuter des instructions sql sur le pc client?
Oui, des privilèges et des droits de tous ensemble, car même code s'exécute correctement sur d'autres Usercontrols. Il n'est pas de travailler sur ce usercontrol seulement..
Est-ce que tout le code ou tu fais autre chose coz je crois que cela devrait fonctionner
J'ai ajouté le code entier dans ma question merci de regarder.
Êtes-vous sûr que vous avez des privilèges et des droits d'exécuter des instructions sql sur le pc client?
Oui, des privilèges et des droits de tous ensemble, car même code s'exécute correctement sur d'autres Usercontrols. Il n'est pas de travailler sur ce usercontrol seulement..
Est-ce que tout le code ou tu fais autre chose coz je crois que cela devrait fonctionner
J'ai ajouté le code entier dans ma question merci de regarder.
OriginalL'auteur Saral Doshi | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
Certainement ce qui se passe si votre
cbxMetal_SelectedIndexChanged
est appelé avantcbxAlloyBinding()
est appelé dans votre constructeur.Par exemple (voir le code ci-dessous), vous pouvez avoir d'autres combobox liaisons dans le constructeur qui peut venir avant
cbxAlloyBinding()
dans le constructeur, et ces liaisons sont appelcbxMetal_SelectedIndexChanged
.Ce que je soupçonne est votre
cbxMetal.DataSource
est définie à partir d'un autre point dans votre code et bien avantDisplayMember
etValueMember
sont affectés;Rappelez-vous juste,
System.DataRow.DataRowView
ne se fera que siOriginalL'auteur Marshal
réglage de la
DisplayMember
etValueMemeber
après le réglage de laDataSource
résolu ce problème pour moi.OriginalL'auteur philx_x
Il semble que le problème n'est pas avec le code que vous avez collé ici, il est peut-être du client de l'environnement, de raccordement, de privilèges, etc. Vous devez donner plus d'info à ce sujet "il ne travaille pas dans des pc clients'. Quels sont les systèmes qu'ils utilisent, ce qui est l'erreur, avez-vous essayé de débogage à côté client?
*Edit:*ensuite, vous devez trouver le problème retraçant toute l'opération depuis le début. Mon avis est que faire une fausse application windows form, juste un formulaire standard, une zone de liste déroulante et un bouton. SUR l'événement click du bouton, faites ce que vous avez fait. Juste lier la combo et envoyer ce temp application pour le client. Si cela fonctionne alors faire étape par étape.Ex:
J'ai créé cette application en une minute, et il est travaillé pour moi.
Pourriez-vous s'il vous plaît montrer tout le code sur zone de liste déroulante, la modification des propriétés, l'initialisation de ses accessoires? Il semble que les articles, selecteditem modifications conflit.
Je ne suis pas de changer toutes les propriétés ou l'initialisation de toutes les propriétés. Outre le code ci-dessus, je suis seulement en utilisant sa valeur sélectionnée dans d'autres fonctions.
OriginalL'auteur Fredrick Gauss
Je résolus de même ceci:
Cela ne fonctionne qu'avec
Système.Les données.DataTable
ou
Liste
sources de données
OriginalL'auteur Magnus Alexander
Il m'avait montré la même exception, donc je l'ai fait et cela a fonctionné
OriginalL'auteur SOS21
CELA AIDERA CERTAINEMENT À VOUS
sur la charge de l'Événement que vous voulez Juste Écrire ce code
essayez d'utiliser Utilisez le code où vous souhaitez accéder aux valeurs........
VOTRE zone de liste déroulante.texte = Système.Les données.DataRowView Sera Résolu ##
OriginalL'auteur Dhav
"comboBox1.SelectedValue" renvoie l'objet et que vous souhaitez que la ficelle afin de le convertir Convertir.ToString(comboBox1.SelectedValue) et ensuite utiliser
par exemple:
OriginalL'auteur Raj