none
Insertion des données d'un datagrid dans une base de données

    Question

  • Bonjour, dans mon projet j'ai un dataset que j'affiche dans un datagrid que je voudrais enregistrer dans une table comme une donnée unique(plusieurs enregistrements du datagrid ayant une clé unique:exemple d'un bordereau).

    Est ce possible avec sqlserver2008? si oui comment puix je resoudre ce problème?

    merci.

    Monday, July 05, 2010 7:09 AM

Answers

  • Bonjour,

     

    Voici le code que vous pouvez utiliser pour enregistre des données dans une table :

     

    Dim str As String = "Data Source=(local);Initial Catalog=TestDB;Integrated Security=True"

     

    Dim con As New SqlConnection(str) 

    Dim com As New SqlCommand() 

    com.Connection = con 

    Dim param As New SqlParameter("p1", SqlDbType.NVarChar, 20) 

    com.Parameters.Add(param) 

    param.Value = "0001/2010"

    com.CommandText = "insert into table1 (col1) values (@p1)"

    con.Open() 

    com.ExecuteNonQuery() 

    con.Close()

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

    Astuces pour Visual Studio 2010

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Café des usages

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

     

    Tuesday, July 06, 2010 10:17 AM
  • Bonjour,

    Parcourez tout simplement votre DataTable. Pour chaque itération appliquez le code de M. PETRESCU en récupérant les valeurs à insérer nécessaire.

    For i = 0 To ds.Tables("VotreDataTable").Rows.Count
      ' Pour récupérer la valeur de la colonne "MaColonne" :
    Dim maValeur = ds.Tables("VotreDataTable").Rows(i).Item("MaColonne") Next

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    Tuesday, July 06, 2010 7:32 PM
    Moderator

All replies

  • Bonjour,

    je voudrais enregistrer dans une table comme une donnée unique(plusieurs enregistrements du datagrid ayant une clé unique:exemple d'un bordereau
    Pouvez-vous être plus explicit ? J'ai du mal à comprendre ce que vous souhaitez faire...

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    Monday, July 05, 2010 7:34 AM
    Moderator
  • Bonjour,

    Pas sûr de comprendre. La table des lignes de bordereau va avoir une clé unique qui identifie chaque ligne. Le n° de bordereau présent dans cette table ne sera qu'une "clé étrangère" (non unique) qui indiquera l'identifiant de bordereau auquel cette ligne est liée.

    La clé unique n'a de sens que dans la table où elle se trouve. Ce n'est pas parce que l'identifiant du bordereau est clé unique dans la table des entêtes de bordereaux, qu'elle va se retrouver clé unique dans la table des lignes de bordereaux.

    Ou alors j'ai mal compris le problème...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    Monday, July 05, 2010 7:40 AM
    Moderator
  •  

    'Procdure de création du dataset

    ObjetConnection =

    New SqlConnection(My.Resources.Cnn1)

     

    'instanciation de l'objet command

    ObjetCommand =

    New SqlCommand("SelectSujetionBorderoCommand", ObjetConnection)

     

    'type de commande de l'objet command

    ObjetCommand.CommandType = CommandType.StoredProcedure

    ObjetConnection.Open()

    ObjetCommand.Parameters.Add(

    "@DateMin", SqlDbType.VarChar).Value = DTPickerStart.Value

    ObjetCommand.Parameters.Add(

    "@DateMaxi", SqlDbType.VarChar).Value = DTPickerEnd.Value

     

    Dim daGetStat As New SqlDataAdapter(ObjetCommand)

     

    daGetStat.Fill(dsStat,

    "Sujetion")

    DataGridViewSTAT.DataSource = dsStat.Tables(

    "Sujetion")

    ObjetConnection.Close()

    le dataset s'affiche et j'ajoute un code du bordereau dans un textbox

    txtbxCodebordereau.text="0001/2010"

    je souhaites enregistrer ce groupe de données du datagridviewSTAT dans une autre table et ce groupe de données aura pour clé le code "0001/2010".

    merci

    Monday, July 05, 2010 7:48 AM
  • Bonjour,

     

    Voici le code que vous pouvez utiliser pour enregistre des données dans une table :

     

    Dim str As String = "Data Source=(local);Initial Catalog=TestDB;Integrated Security=True"

     

    Dim con As New SqlConnection(str) 

    Dim com As New SqlCommand() 

    com.Connection = con 

    Dim param As New SqlParameter("p1", SqlDbType.NVarChar, 20) 

    com.Parameters.Add(param) 

    param.Value = "0001/2010"

    com.CommandText = "insert into table1 (col1) values (@p1)"

    con.Open() 

    com.ExecuteNonQuery() 

    con.Close()

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

    Astuces pour Visual Studio 2010

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Café des usages

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

     

    Tuesday, July 06, 2010 10:17 AM
  • merci, je vais essayer mais pouvez vous m'expliquer où se trouve les informations contenues dans mon datagrid dans le

    commandtext ("insert into table1 (col1) values (@p1)" ).

    merci

    Tuesday, July 06, 2010 12:18 PM
  • Bonjour,

    J'ai du mal à comprendre ce que vous souhaitez faire...

    Voulez-vous enregistrer votre DataSet avec des lignes qui ont la même clé (0001/2010) ?

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    Tuesday, July 06, 2010 12:36 PM
    Moderator
  • Exactement.Toutes les lignes du dataset qui seront enregistrées dans la nouvelle table auront une même clé(001/2010).

    Pour l'illustrer mon problème, considerons plusieurs personnes qui sont enregistrées dans un bordereau (c'est le dataset) et je voudrais enregistrer le bordereau(ayant ces personnes) dans une table (Table_Bordereau) ayant pour clé Num_Bordereau ("0001/2010" comme exemple de clé)

    merci

     

    Tuesday, July 06, 2010 1:27 PM
  • Bonjour,

    Parcourez tout simplement votre DataTable. Pour chaque itération appliquez le code de M. PETRESCU en récupérant les valeurs à insérer nécessaire.

    For i = 0 To ds.Tables("VotreDataTable").Rows.Count
      ' Pour récupérer la valeur de la colonne "MaColonne" :
    Dim maValeur = ds.Tables("VotreDataTable").Rows(i).Item("MaColonne") Next

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    Tuesday, July 06, 2010 7:32 PM
    Moderator
  • merci
    Wednesday, July 07, 2010 9:01 AM