de Good Morning Stack Overflow,Essayer d'insérer dans plusieurs tables via des formulaires de page Web (SQL, ASP.net)
Je suis nouveau à asp.net et un problème que je suis en train de régler, peut-être tu peux aider?
Le résultat que je cherche est que les données vont dans CANRADcontacts et CANRADcollreg qui partagent un ID commun.
Je suis en train de remplir la base de données via un formulaire Web, et ne peut pas tout à fait obtenir le SQL correct, s'il vous plaît voir cet exemple;
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Vars
Dim FlightDateArriveString As String = (FlightMonthArrive.SelectedValue.ToString & "/" & FlightDayArrive.SelectedValue.ToString & "/" & "2010")
Dim FlightDateDepartString As String = (FlightMonthDepart.SelectedValue.ToString & "/" & FlightDayDepart.SelectedValue.ToString & "/" & "2010")
Dim FlightDateArrive As DateTime
Dim FlightDateDepart As DateTime
FlightDateArrive = Convert.ToDateTime(FlightDateArriveString)
FlightDateDepart = Convert.ToDateTime(FlightDateDepartString)
'Setup db connection
Dim CollID As Integer = 1
Dim connstring As String = WebConfigurationManager.ConnectionStrings("ConnectionString").ToString()
Dim conn As SqlConnection = New SqlConnection(connstring)
Dim sql As String = ("INSERT INTO [CANRADcontacts]") & _
(" ([Title], [Initials], [FirstName], [LastName], [Organisation], [Department], [Address], [Code],") & _
(" [Telephone], [WorkTelephone], [Fax], [CellularTelephone],[Email], [ResearchFocus], [CollID], [ResearchFunders])") & _
(" VALUES (@Title, @Initials, @FirstName, @LastName, @Organisation, @Department, @Address, @Code, ") & _
("@Telephone, @WorkTelephone, @Fax, @CellularTelephone, @Email, @ResearchFocus, @CollID, @ResearchFunders) ") & _
("[CANRADcollreg]([CollID], [FlightDateArrive], [FlightNameArrive], [FlightTimeArrive], [FlightDateDepart], [FlightNameDepart], [FlightTimeDepart], [AttendingLaunch], [Accomodation], [DietaryRequirements], [SpecificDietaryRequirement]) ") & _
("VALUES (@CollID, @FlightDateArrive, @FlightNameArrive, @FlightTimeArrive, @FlightDateDepart, @FlightNameDepart, @FlightTimeDepart, @AttendingLaunch, @Accomodation, @DietaryRequirements, @SpecificDietaryRequirement)")
Dim comm As New SqlCommand(sql, conn)
's1
comm.Parameters.Add("@Title", SqlDbType.VarChar)
comm.Parameters.Add("@Initials", SqlDbType.VarChar)
comm.Parameters.Add("@FirstName", SqlDbType.VarChar)
comm.Parameters.Add("@LastName", SqlDbType.VarChar)
comm.Parameters.Add("@Organisation", SqlDbType.VarChar)
comm.Parameters.Add("@Department", SqlDbType.VarChar)
comm.Parameters.Add("@Address", SqlDbType.VarChar)
comm.Parameters.Add("@Code", SqlDbType.VarChar)
comm.Parameters.Add("@Telephone", SqlDbType.VarChar)
comm.Parameters.Add("@WorkTelephone", SqlDbType.VarChar)
comm.Parameters.Add("@Fax", SqlDbType.VarChar)
comm.Parameters.Add("@CellularTelephone", SqlDbType.VarChar)
comm.Parameters.Add("@Email", SqlDbType.VarChar)
comm.Parameters.Add("@ResearchFocus", SqlDbType.VarChar)
comm.Parameters.Add("@CollID", SqlDbType.VarChar)
comm.Parameters.Add("@ResearchFunders", SqlDbType.VarChar)
's2
comm.Parameters.Add("@FlightDateArrive", SqlDbType.DateTime)
comm.Parameters.Add("@FlightNameArrive", SqlDbType.VarChar)
comm.Parameters.Add("@FlightTimeArrive", SqlDbType.VarChar)
comm.Parameters.Add("@FlightDateDepart", SqlDbType.DateTime)
comm.Parameters.Add("@FlightNameDepart", SqlDbType.VarChar)
comm.Parameters.Add("@FlightTimeDepart", SqlDbType.VarChar)
comm.Parameters.Add("@AttendingLaunch", SqlDbType.VarChar)
comm.Parameters.Add("@Accomodation", SqlDbType.VarChar)
comm.Parameters.Add("@DietaryRequirements", SqlDbType.VarChar)
comm.Parameters.Add("@SpecificDietaryRequirement", SqlDbType.VarChar)
'bind1
comm.Parameters("@Title").Value = TitleDD.SelectedItem.ToString
comm.Parameters("@Initials").Value = Initials.Text
comm.Parameters("@FirstName").Value = FirstName.Text
comm.Parameters("@LastName").Value = LastName.Text
comm.Parameters("@Organisation").Value = Organisation.Text
comm.Parameters("@Department").Value = DeptDiv.Text
comm.Parameters("@Address").Value = PostalAddress.Text
comm.Parameters("@Code").Value = Code.Text
comm.Parameters("@Telephone").Value = Telephone.Text
comm.Parameters("@WorkTelephone").Value = WorkTelephone.Text
comm.Parameters("@Fax").Value = Fax.Text
comm.Parameters("@CellularTelephone").Value = CellularTelephone.Text
comm.Parameters("@Email").Value = EmailAddress.Text
comm.Parameters("@ResearchFocus").Value = ResearchFocus.Text
comm.Parameters("@CollID").Value = CollID
comm.Parameters("@ResearchFunders").Value = ResearchFunders.Text
'bind2
comm.Parameters("@FlightDateArrive").Value = FlightDateArrive
comm.Parameters("@FlightNameArrive").Value = FlightNameArrive.Text
comm.Parameters("@FlightTimeArrive").Value = FlightTimeArrive.Text
comm.Parameters("@FlightDateDepart").Value = FlightDateDepart
comm.Parameters("@FlightNameDepart").Value = FlightNameDepart.Text
comm.Parameters("@FlightTimeDepart").Value = FlightTimeDepart.Text
comm.Parameters("@AttendingLaunch").Value = AttendingMarch23.SelectedValue.ToString
comm.Parameters("@Accomodation").Value = Transport.SelectedValue.ToString
comm.Parameters("@DietaryRequirements").Value = Dietary.SelectedValue.ToString
comm.Parameters("@SpecificDietaryRequirement").Value = SpecificDietary.Text
conn.Open()
comm.ExecuteScalar()
conn.Close()
End Sub
Merci d'avance, toute aide grandement appréciée !!
Merci beaucoup PatMortech, la requête fonctionne bien. Le problème que j'ai maintenant est que le ContactsID dans CANRADCollreg doit correspondre à la colonne d'identification dans la table de CANRADcontacts. Ainsi, lorsqu'un utilisateur insère un nouvel enregistrement, il peut avoir un ID commun et ContactsID – Phil
L'ID de la table CANRADcontacts est-il une colonne d'identité? Si c'est le cas, vous pouvez essayer d'utiliser SCOPE_IDENTITY() dans la deuxième instruction INSERT dans laquelle vous souhaitez utiliser la valeur créée pour votre ID d'enregistrement de contact. – patmortech