Φωτογραφία Βασίλης Κόλιας
Απάντηση: Δημιουργία Βάσης
από Βασίλης Κόλιας - Monday, 30 July 2012, 9:25 AM
 
Αν σε βολεύει κάντο. Μην ελπίζεις σε κάτι αυτόματο όμως του στυλ προσθέτω τα πεδία στο createuserwizard και έτσι θα προστίθενται αυτόματα και τα πεδία στη βάση.


Εγώ θα πρότεινα να μπεί έξτρα πίνακας!
Το κόστος δεν είναι μεγάλο.

βήμα 1. Δημιουργείς τον πίνακα user_details. Το τελευταίο του πεδίο θα είναι το user_id (τύπου uniqueidentifier) που θα λειτουργεί σαν foreign key στον πίνακα aspnet_user.


βήμα 2. Ανοίγεις ένα diagram πετάς τους δύο πίνακες και δημιουργείς τη σχέση.

βήμα 3. Αλλάζεις το createuserwizard ώστε να έχει έξτρα πεδία.

βήμα 4. Στο createduser εισάγεις κώδικα ώστε να ανακτά το id το νέου χρήστη και να το εισάγει μαζί με τα υπόλοιπα πεδία στον πίνακα user_details.

.
.
.
//ανάκτηση του χρήστη
MembershipUser newUser = Membership.GetUser(CreateUserWizard1.UserName);
//το userid είναι τύπου uniqueidentifier ένα int δεν μας κάνει...
Guid uniqueIDofNewUser = (Guid)newUser.ProviderUserKey;

//το insert για τον δεύτερο πίνακα
SqlCommand command = new SqlCommand("INSERT INTO User_Details VALUES(@details_signature, @details_image, ..., @details_user_id)", myConnection);

//ανακάλυψη του επιπλέον πεδίου προστέθηκε
TextBox signature = (TextBox)CreateUserWizardStep1.ContentTemplateContainer.FindControl("Signature");

.
.
.

//καθορίσμος της τιμής και του τύπου των διαφόρων παραμέτρων στο ερώτημα command.Parameters.Add("@details_signature", System.Data.SqlDbType.NVarChar).Value = signature.Text;
command.Parameters.Add("@details_image", System.Data.SqlDbType.NVarChar).Value = DBNull.Value;
.
.
.
command.Parameters.Add("@details_user_id", System.Data.SqlDbType.UniqueIdentifier).Value = uniqueIDofNewUser;

//εκτέλεση
command.ExecuteNonQuery();
myConnection.Close();
.
.
.