0
votes

Recherche de l'élément de zone de liste coché sélectionné dans la base de données

Je crée un programme de planification de réunions en c #, j'ai rempli la zone de liste cochée avec les prénoms et les noms de la base de données.

Cependant, je veux comprendre comment je pourrais vérifier quels utilisateurs ont été sélectionnés pour être ajoutés afin que je puisse ajouter leur userID à une base de données distincte. Toute aide est grandement appréciée car je suis assez novice dans l'utilisation de sql en c #.

Code:

ds.Tables.Add(cms.GettingUserTable());

if (ds.Tables[0].Rows.Count > 0)
{
    foreach (DataRow item in ds.Tables[0].Rows)
    {
        cblUser.Items.Add(item["FirstName"] + " " + item["LastName"].ToString());
    }
}


5 commentaires

les éléments de la liste de cases à cocher auront une valeur cochée je pense


Remarque: $ "{item [" FirstName "]} {item [" LastName "]}" (interpolation de chaîne) est de loin plus lisible que item ["FirstName"] + "" + élément ["LastName"]. ToString ()


Je connais la valeur vérifiée, je ne savais tout simplement pas comment obtenir les valeurs séparées du prénom et du nom qui ont été combinées pour être ensuite utilisées dans une requête pour les ID utilisateur pertinents


@DmitryBychenko c'est votre avis, je trouve l'interpolation moins lisible dans ce cas car elle est beaucoup plus imbriquée. La lisibilité subjective est affectée par le code avec lequel vous travaillez.


Utilisez la propriété «Tag». Cela prend un objet, cela peut être n'importe quoi, vous pouvez donc y stocker l'objet personne entier ou simplement l'identifiant. Avant d'ajouter l'élément, remplissez sa propriété Tag.


3 Réponses :


0
votes

Pouvez-vous nous montrer comment vous obtenez vos valeurs à partir du serveur SQL.

J'ai eu le même problème, mais j'utilise une méthode qui prend toutes les données du serveur SQL sous la forme ObservableCollection p>

Mon exemple de méthode, peut-être vous aiderait

 public ObservableCollection<Product> GetProduct(int supplierId)
    {
        var listProdukt = new ObservableCollection<Product>();
        using (var sqlConnection = OpenSqlConnection())
        {
            var sqlCommandText = $"SELECT "something..."};";
            var sqlCommand = new SqlCommand
            {
                CommandText = sqlCommandText,
                Connection = sqlConnection
            };

            var reader = sqlCommand.ExecuteReader();
            {
                while (reader.Read())
                {
                    var product = new Product
                    {
                        ProductSizeBySupplierId = int.Parse(reader["ProductSizeBySupplierId"].ToString()),
                        CategoryId = int.Parse(reader["CategoryId"].ToString()),                          
                    };
                    listProdukt.Add(product);
                }
            }
        }

        return listProdukt;
    }


2 commentaires

Pouvez-vous le partager s'il vous plaît


J'obtiens les valeurs en utilisant une fonction dans une classe de gestion de contenu distincte public DataTable GettingUserTable () {string Query = "Select * from Users"; SqlCommand sc = new SqlCommand (Query, ConnectionString.GetConnection ()); DataTable dt = nouveau DataTable (); SqlDataAdapter sds = new SqlDataAdapter (sc); sds.Fill (dt); return dt; }



0
votes

"Cependant, je veux comprendre comment je pourrais vérifier quels utilisateurs ont été sélectionnés pour être ajoutés afin que je puisse ajouter leur ID utilisateur à une base de données distincte."

Ce que vous pouvez faire est de:

Disons que vous avez une table comme

cblUser.Items.Add(item["FirstName"] + " " + item["LastName"] + " " + item["Checked"]);

Ensuite, vous pouvez rechercher des entrées dans votre base de données avec (si vous ne voulez que des entrées cochées):

SELECT First_Name, Last_Name FROM Planner_Table WHERE [Checked] = true

Puis modifiez votre code:

Planner_Table
---------------------------------------
|Id | First_Name | Last_Name | Checked |
---------------------------------------


0 commentaires

1
votes

J'ai réussi à le résoudre: créer une liste lors du remplissage de la liste des cases à cocher en utilisant le UserID. Convertissez la liste en un tableau puis faites correspondre l'index du tableau avec l'index de la case cochée


0 commentaires