dodanie rekordów do 2 tabel połączonych relacją 1 do wielu

Wszystko o bazach danych

Moderator: xxSlayeRxx

dodanie rekordów do 2 tabel połączonych relacją 1 do wielu

Sponsor

Sponsor
 

dodanie rekordów do 2 tabel połączonych relacją 1 do wielu

Postprzez slawekh666 » So lis 02, 2013 10:43 am

Mam bazę w niej dwie tabele połączone relacją jeden do wielu. Jak na poniższym diagramie:
http://www.fotosik.pl/pokaz_obrazek/e985fe908a933d81.html
Chcę dodać film który zawiera np 3 gatunki. Ale wyrzuca mi błąd "ExecuteNonQuery requires the command to have a transaction when the connection assigned to the command is in pending local transaction. The Transaction property of the command has been initialized." Nie wiem za bardzo o co chodzi. To mój kod:
Kod: Zaznacz cały
string[] linkaddgalerie = {"Komedia","horror","thriller"};
            bool success = true;
            SqlConnection sqlconn = null;
            SqlTransaction trans = null;
            SqlDataReader sqlreader = null;
            try
            {
                sqlconn = new SqlConnection("Data Source=SLAWEK\\SQLSERVER;Initial Catalog=testowa;Integrated Security=True");
                sqlconn.Open();
                trans = sqlconn.BeginTransaction(System.Data.IsolationLevel.Serializable);
                using (SqlCommand command1 = new SqlCommand("Insert Into film (tytulorginalny,tytul,data) Values ('" + this.tbtytulorginalny.Text + "','" + this.tbtytul.Text + "','" + dtp.Value.Date.Year + "/" + dtp.Value.Date.Month + "/" + dtp.Value.Date.Day + "')", sqlconn))
                {
                    command1.ExecuteNonQuery();
                }
                using (SqlCommand command2 = new SqlCommand("select ID from Film where tytulorginalny ='" + this.tbtytulorginalny.Text + "'", sqlconn))
                {
                    sqlreader = command2.ExecuteReader();
                }
                for (int i = 0; i < linkaddgalerie.Length; i++)
                {
                    using (SqlCommand command3 = new SqlCommand("Insert Into galeria (galeria,ID_film) Value ('" + linkaddgalerie[i] + "','" + sqlreader + "')", sqlconn))
                    {
                        command3.ExecuteNonQuery();
                    }
                }
                MessageBox.Show("Dodano rekord do bazy!", "Sukces", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (SqlException ex)
            {
                success = false;
                MessageBox.Show("Błąd:" + ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex)
            {
                success = false;
                MessageBox.Show("Błąd:" + ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (success)
                    trans.Commit();
                else
                    trans.Rollback();

                if (sqlconn != null)
                    sqlconn.Close();
            }
slawekh666
Member
 
Posty: 33
Dołączył(a): Śr paź 09, 2013 6:45 am

dodanie rekordów do 2 tabel połączonych relacją 1 do wielu

Sponsors

Sponsor
 

Powrót do Bazy danych

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości