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

  • 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.

    lundi 5 juillet 2010 07:09

Réponses

  • 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.

     

     

     

    • Marqué comme réponse Alex Petrescu jeudi 8 juillet 2010 09:13
    mardi 6 juillet 2010 10:17
  • 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
    • Marqué comme réponse Alex Petrescu jeudi 8 juillet 2010 09:13
    mardi 6 juillet 2010 19:32
    Modérateur

Toutes les réponses

  • 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
    lundi 5 juillet 2010 07:34
    Modérateur
  • 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".
    lundi 5 juillet 2010 07:40
    Modérateur
  •  

    '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

    lundi 5 juillet 2010 07:48
  • 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.

     

     

     

    • Marqué comme réponse Alex Petrescu jeudi 8 juillet 2010 09:13
    mardi 6 juillet 2010 10:17
  • 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

    mardi 6 juillet 2010 12:18
  • 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
    mardi 6 juillet 2010 12:36
    Modérateur
  • 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

     

    mardi 6 juillet 2010 13:27
  • 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
    • Marqué comme réponse Alex Petrescu jeudi 8 juillet 2010 09:13
    mardi 6 juillet 2010 19:32
    Modérateur
  • merci
    mercredi 7 juillet 2010 09:01