Question

Je suis nouveau sur .NET et je n'arrive pas à comprendre quelque chose qui devrait être simple. Je souhaite insérer une ligne dans une table et l'initialiser avec des valeurs qui ne sont pas liées aux contrôles de données. Plus précisément, j'ai un contrôle CreateUserWizard sur une page. Dans la méthode CreatedUser, je souhaite insérer une ligne dans la base de données créée, appelée "utilisateurs". qui contient le nom d'utilisateur et l'adresse de messagerie du contrôle CreateUserWizard, ainsi que la date de création du nouvel utilisateur, à partir de la fonction DateTime.Now. Il ne semble pas y avoir de moyen de définir les paramètres du contrôle sqlDataSource de manière à ce qu'ils puissent accéder aux données qui ne sont pas liées aux contrôles de données. Quelqu'un peut-il m'expliquer un moyen de le faire?

Était-ce utile?

La solution

Vous êtes sur la mauvaise piste. Vous n'utiliserez pas du tout le contrôle sqlDataSource. Vous opterez pour une interaction plus directe avec la base de données à partir du code. Par exemple:

SqlConnection conn = new SqlConnection(connString);
SqlCommand cmnd = new SqlCommand("Insert Into Table (P1, P2) Values (@P1, @P2)", conn);
cmnd.Parameters.AddWithValue("@P1", P1Value);
cmnd.Parameters.AddWithValue("@P2", P2Value);
cmnd.ExecuteNonQuery();
conn.Close();

Maintenant que tout cela est dit, vous voudrez apprendre le SqlCommand et le SqlDataReader en détail (ils sont assez simples), puis vous concentrer sur la création d’une couche d’accès aux données qui vous convient. Vous serez content de l'avoir fait.

Autres conseils

Une autre option consiste à définir des valeurs par défaut sur la base de données elle-même, de sorte que vous ne craigniez pas de transmettre Datetime.now.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top