Problème de récupération d'ID
Bonjour à toute la communauté,
Je suis débutant en développement VB.NET et je viens ici vous demandez conseil, voici mon code-source :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| Imports System.Data.SqlClient
Imports System.Net.Mime.MediaTypeNames
Public Class WebForm4
Inherits System.Web.UI.Page
'DECLARATION DES VARIABLES
Dim myConnection As SqlConnection
Dim executercommand As Integer
Dim IDmax As String = " SELECT MAX (ID_dossier) FROM Dossier"
Dim IDdossier As String = IDmax + 1
Dim timer As DateTime
'FIN DE LA DECLARATION
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Private Sub Ajouterdossier_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Ajouterdossier.Click
'DECLARATION DE LA CONNECTION SQL
myConnection = New SqlConnection("server=;uid=;pwd=;database=")
'FIN DE LA DECLARATION
'----------------------------------------------------------------------------------------------------------
'DECLARATION DES VARIABLES D'INSERTION SQL
Dim myInsertQueryDossier As String = "INSERT INTO [Dossier] ([ID_dossier], [Description], [Emplacement], [ID_Filiale], [ID_Nom_Tiers], [Date_Creation] ) VALUES ( '" + IDdossier + "' , '" + descriptiondossier.Text.ToString() + "' , '" + emplacementdossier.Text.ToString() + "' , '" + nomfilialedrop.SelectedValue + "' , '" + naturefilialedrop.SelectedValue + "')"
Dim myInsertQueryLigne As String = " INSERT INTO [Ligne] ([ID_dossier], [objet_ligne], [commentaires_ligne], [ID_nat_doc], [avenant]) VALUES ( '" + IDdossier + "' , '" + objet.Text.ToString() + "' , '" + commentaires.Text.ToString() + "' , '" + naturedocid.Text.ToString() + "' , '" + avenant.Text + "')"
Dim myCommand As New SqlCommand(myInsertQueryDossier + myInsertQueryLigne)
'FIN DES DECLARATIONS
'-----------------------------------------------------------------------------------------------------------
myCommand.Connection = myConnection 'INITIALISATION DE LA CONNECTION
myConnection.Open() 'OUVERTURE DE LA CONNECTION
myCommand.ExecuteNonQuery() 'EXECUTION DE LA REQUETE SQL
myCommand.Connection.Close() 'FERMETURE DE LA CONNECTION
Response.AppendHeader("Refresh", "0") 'ACTUALISATION DE LA PAGE POUR VIDER LE FORMULAIRE
AlertWindow("Le dossier et la ligne ont bien été ajoutés.") 'MESSAGE D'AVERTISSEMENT
End Sub
'SCRIPT POUR ALERTWINDOW
Private Sub AlertWindow(ByVal Message As String)
Message = Message.Replace("'", "\'")
Message = Message.Replace(Convert.ToChar(10), "\n")
Message = Message.Replace(Convert.ToChar(13), "")
ltlAlert.Text = "alert('" & Message & "')"
End Sub
'FIN DU SCRIPT
End Class |
Alors déjà j'ai un problème pour insérer la Date à l'aide d'un DateTime dans ma requête SQL :
Code:
1 2
|
Dim myInsertQueryDossier As String = "INSERT INTO [Dossier] ([ID_dossier], [Description], [Emplacement], [ID_Filiale], [ID_Nom_Tiers], [Date_Creation] ) VALUES ( '" + IDdossier + "' , '" + descriptiondossier.Text.ToString() + "' , '" + emplacementdossier.Text.ToString() + "' , '" + nomfilialedrop.SelectedValue + "' , '" + naturefilialedrop.SelectedValue + "')" |
Et ensuite j'ai un soucis au niveau de l'ID :
Code:
1 2 3
|
Dim IDmax As String = " SELECT MAX (ID_dossier) FROM Dossier"
Dim IDdossier As String = IDmax + 1 |
J'aimerais en effet dans ce cas générer moi-même l'ID car le principe c'est qu'il y a un dossier auquel on ajoute des lignes ( on peut ajouter des contrats etc. par exemple) et du coup pour insérer mes lignes j'ai besoin de récupérer cet ID. Mon problème qui ce pose aussi (il y a peu de chance que cela ce produise mais imaginons) c'est que deux utilisateurs saisissent en même temps des données, admettons un pc plus rapide qu'un autre etc., du coup les lignes ne correspondrais pas au dossier initialement créer il y aurait un décalage, comment puis-je palier à cela?
Si je ne suis pas très clair dites le moi :)
Je vous remercie à tous ;)