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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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