2013-05-06 4 views
0

J'ai 2 tables comme Item et Image, première table tbl_Item a 2 champs ce sont le code d'article, le nom d'article et la deuxième table tbl_Image a 2 champs aiment le code d'article et l'image d'article. J'ai des champs comme le code d'article, le nom d'article, l'image d'article et un bouton. Lorsque je clique sur le bouton soumettre, ces enregistrements sont insérés dans les deux tableaux. Je veux insérer les données dans deux tableaux Comment cela est-il possible? Quelqu'un peut-il me suggérer?Insérer la date dans 2 tables

cmd.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings[1].ToString()); 
    cmd.CommandText = "insert into tbl_item (@itemcode,@itemname) values(ItemCode,ItemName)"; 
    cmd.CommandText = "insert into tbl_image (@itemcode,@itemimage) values(ItemCode,ItemImage)"; 
+2

Est-ce que le code réel, parce que je pense que vous paramètres échangé avec les noms de colonnes, ainsi êtes-vous que votre table 'Image' n'est pas une vue basée sur' tblItem'? – Habib

+0

_ "Lorsque je clique sur le bouton soumettre, ces enregistrements sont insérés dans les deux tableaux" _ - êtes-vous sûr de cela? N'exécutez-vous qu'une seule requête en cliquant sur le bouton? La base de données contient-elle des déclencheurs ou est-ce bien une vue comme @Habib? C'est trop vague pour résoudre, s'il vous plaît montrer plus d'informations. – CodeCaster

+0

Merci Habib, oui c'est un vrai code tout d'abord j'ai essayé avec deux feilds puis après je vais ajouter – Vijaya

Répondre

1

si vous souhaitez insérer à la fois l'enregistrement dans l'exécution d'une commande unique puis joindre la requête avec ";".

tels que

cmd.CommandText = "insert into tbl_item (@itemcode,@itemname) values(ItemCode,ItemName);insert into tbl_image (@itemcode,@itemimage) values(ItemCode,ItemImage)"; 
+0

Merci beaucoup Deniyal Tandel ça marche. – Vijaya

+0

La requête SQL elle-même est erronée. Il doit être @ "insert dans les valeurs de tbl_item (ItemCode, ItemName) (@ itemcode, @ itemname)"; –

+0

je l'ai changé Deniyal Tandel – Vijaya

3

Oui, vous pouvez insérer simultanément dans deux tables. Cocher ce code:

Remarque: Votre requête d'insertion d'origine a échoué, je l'ai modifiée.

public void InsertIntoDataBase(int itemCode, string itemName, string itemImage) 
{ 
    string connString = ConfigurationManager.ConnectionStrings[1].ToString(); 
    string query1 = @"insert into tbl_item (ItemCode,ItemName) values(@itemcode,@itemname)"; 
    string query2 = @"insert into tbl_image (ItemCode,ItemImage) values(@itemcode,@itemimage)"; 

    SqlConnection conn = new SqlConnection(connString); 

    try 
    { 
     // Exc]ecute the first query. 
     SqlCommand cmd = new SqlCommand(query1, conn); 
     cmd.Parameters.Add("@itemcode", SqlDbType.Int, 10, "ItemCode").Value = itemCode; // Pass the actual Item code 
     cmd.Parameters.Add("@itemname", SqlDbType.Text, 20, "ItemName").Value = itemName; //Pass the actual Item name 
     cmd.ExecuteNonQuery(); 


     // Exc]ecute the second query. 
     cmd = new SqlCommand(query2, conn); 
     cmd.Parameters.Add("@itemcode", SqlDbType.Int, 10, "ItemCode").Value = itemCode; // Pass the actual Item code 
     cmd.Parameters.Add("@itemimage", SqlDbType.Text, 20, "ItemImage").Value = itemImage; // Pass the actual Item image 
     cmd.ExecuteNonQuery(); 
    } 
    catch (Exception e) 
    { 

    } 
    finally 
    { 
     conn.Close(); 
    } 
} 
+0

Merci skumar cela a fonctionné pour moi mais ici vous passez les valeurs statiques, je veux transmettre les valeurs dynamiquement comment? – Vijaya

+0

@ user2131469: J'ai mis à jour le code, vérifiez-le. –