leusha
Messages postés11Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention27 juillet 2006
-
24 juil. 2006 à 19:28
vlaad
Messages postés79Date d'inscriptionmardi 29 juin 2004StatutMembreDernière intervention18 décembre 2006
-
25 juil. 2006 à 09:40
Bonjour.
J'ai un petit soucis pour l'insertion de données dans une base de données MS SQL Server provenant d'un formulaire.
Explications :
J'ai une table COMPANY :
COMPANY_CODE smallint identity (1, 1) ,
CONTRACT_TYPE_CODE smallint not null ,
COMPANY_NAME char(32) null ,
COMPANY_STREETNUMBER int null ,
COMPANY_STREETNAME char(32) null ,
COMPANY_FLOOR int null ,
COMPANY_COLONIA char(32) null ,
COMPANY_ZIPCODE int null ,
COMPANY_CITY char(32) null ,
COMPANY_COUNTRY char(32) null ,
COMPANY_CONTRACTDESCRIPTION text null ,
COMPANY_LOCALISATIONLINK varchar(255) null
,
constraint PK_COMPANY primary key (COMPANY_CODE)
Et j'ai une table CONTACT :
CONTACT_CODE smallint identity (1, 1) ,
COMPANY_CODE smallint not null ,
CONTACT_FIRSTNAME char(32) null ,
CONTACT_LASTNAME char(32) null ,
CONTACT_EMAIL varchar(128) null ,
CONTACT_PHONENUMBER char(32) null
,
constraint PK_CONTACT primary key (CONTACT_CODE)
On ne s'occupe pas des autres clés étrangères présentes dans chacune des deux tables.
L'utilisateur remplit un formulaire ou il entre le nom de son entreprise, adresse etc... puis son nom, prénom, mail etc...
Je peux insérer sans problèmes les infos du contact dans la table
CONTACT et les infos de l'entreprise dans la table COMPANY. Seulement,
le code de l'entreprise (COMPANY_Code) est un code autoincrémenté et je
ne sais pas comment l'insérer dans le COMPANY_Code de la table CONTACT.
Je pensais qu'il s'insérait de lui même comme dans la table COMPANY
mais apparemment il faut que je le rajoute a la main dans la table
CONTACT. Je ne sais pas comment faire.
Voici mon code d'insertion dans la table CONTACT :
oCommand = New System.Data.SqlClient.SqlCommand(sSQL, oConnection)
oDataReader = oCommand.ExecuteReader()
oDataReader.Close()
sSQL = "INSERT INTO [CONTACT](CONTACT_FirstName, COMPANY_CODE, CONTACT_LastName, CONTACT_Email, CONTACT_PhoneNumber)" _
vlaad
Messages postés79Date d'inscriptionmardi 29 juin 2004StatutMembreDernière intervention18 décembre 20063 25 juil. 2006 à 09:40
Le truc c'est de recupérer en base de données l'id de ta compagnie (companyCode) avant de l'inserer dans la table contact.
Pour bien tu peux faire quelque chose de ce style:
Insertion de ta company dans ta table
INSERT INTO COMPANY
(CONTRACT_TYPE_CODE,COMPANY_NAME,...,Champn)
VALUES
(@CONTRACT_TYPE_CODE,@COMPANY_NAME,...@Champn);
Récupération de l'ID de ta compagnie:
declare @CodeCompany TypeDeDonne(int ou nvarchar);
set @CodeCompany =
(select COMPANY_CODE
FROM COMPAGNY
WHERE CONTRACT_TYPE_CODE= @CONTRACT_TYPE_CODE,
AND COMPANY_NAME=@COMPANY_NAME,
...,
AND Champn=@Champn);
Insertion des données dans ta table contact
INSERT INTO
CONTACT(CONTACT_FIRSTNAME, CONTACT_LASTNAME, COMPANY_CODE...)
VALUES
(@Nom, @Prenom, @CodeCompany....);
Du coup ta requete devrait avoir cette tête là:
Dim
strSQL_INSERTION_COMPANY
As
String
Dim strSQL_RECUPERATION_ID_COMPANY
As
String
Dim strSQL_INSERTION_CONTACT
As
String
Dim str_REQETE_FINALE
AsStringstrSQL_INSERTION_COMPANY "INSERT INTO COMPANY (CONTRACT_TYPE_CODE,COMPANY_NAME,...,Champn) VALUES(@CONTRACT_TYPE_CODE,@COMPANY_NAME,...@Champn);"strSQL_RECUPERATION_ID_COMPANY
"declare @CodeCompany TypeDeDonne(int ou nvarchar); set @CodeCompany =(select COMPANY_CODE FROM(COMPAGNY)WHERE CONTRACT_TYPE_CODE= @CONTRACT_TYPE_CODE,AND COMPANY_NAME=@COMPANY_NAME,...,AND Champn=@Champn);"strSQL_INSERTION_CONTACT=