2009-03-02 8 views
1

Je suis nouveau sur .NET et je n'arrive pas à trouver 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 une base de données que j'ai créée appelée "users" contenant le nom d'utilisateur et l'adresse électronique 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 un moyen de définir les paramètres dans le contrôle sqlDataSource de manière à pouvoir 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?Insérer des lignes dans une base de données dans ASP.NET

Répondre

9

Vous êtes sur la mauvaise voie - vous n'utiliserez pas du tout le contrôle sqlDataSource. Vous allez opter 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, avec tout ce que dit, vous aurez envie d'apprendre la SqlCommand et SqlDataReader en détail (ils sont assez simples), puis tournez votre attention sur la construction d'une couche d'accès aux données qui fait sens pour toi. Vous serez heureux que vous l'avez fait.

+0

?? Qui serait downvote cette réponse et la marquer offensant ?? Quelqu'un doit avoir un étrange sens de l'humour. –

+0

Qui a pris soin de la question pour moi. Tout a un sens maintenant. Merci de votre aide. –

+0

Je ne sais pas comment voter. . . quand je clique sur "VOTE", rien ne se passe. –

1

Une autre option consiste à définir les valeurs par défaut sur la base de données elle-même, afin de ne pas avoir à vous soucier de transmettre Datetime.now.

+0

Ma préférence personnelle est que des dates comme celle-ci soient toujours définies sur le serveur (en utilisant GETDATE()), corrige de nombreux problèmes avec des mises à jour provenant de plusieurs fuseaux horaires. –

Questions connexes