dodawanie danych do bazy MS SQL Server

0

Problem polega na tym, że mam formularz, w którym wpisuję sobie określona treść, a po naciśnięciu przycisku "dodaj" zawartośc kilku textBoxów ma być dodana do istniejącej tabeli w bazie danych

0

Zakladam, ze umiesz SQL. Teraz poczytaj sobie o tych klasach:

SqlConnectionStringBuilder
SqlConnection
SqlCommand
DbDataReader

0

A jeśli nie znasz SQLa, to http://csharp.blog365.pl/?p=15

0

też się teraz z tym bawię więc zapodam ci mój kod dodawania sprzedawcy lub administratora do bazy plus kilka komentarzy.

        private void btnDodajPracownika_Click(object sender, EventArgs e)
        {
            conn.Open();<font color="green"> //otwierasz połączenie do bazy</font>
           <font color="green"> //następnie sprawdzasz czy takiego użytkownika nie ma już w bazie</font> 
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = string.Format("USE Faktura SELECT* FROM dbo.Pracownicy WHERE imie = '{0}' and nazwisko = '{1}' and login = '{2}'",textBoxImie.Text, textBoxNazwisko.Text, textBoxLogin.Text);
            SqlDataReader dr = cmd.ExecuteReader(); <font color="green">//tutaj polecam MSDN </font> ;] 
            if (dr.HasRows) //HasRows sprawdza Ci czy obiekt SqlDataReader zwrócił jakiś wynik
            {
                MessageBox.Show("Podany pracownik istnieje\nPopraw dane i spróbuj ponownie", "Podany użytkownik istnieje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                dr.Close();
                if( MessageBox.Show("Czy napewno chcesz dodać nowego pracownika", "Uwaga", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)==DialogResult.Yes)
<font color="green">//tutaj właśnie następuje wstawianie nowego użytkownika do bazy</font>
                {
                    if (comboBoxUprawnienia.Text == comboBoxUprawnienia.Items[0].ToString())
                    {
                        cmd.CommandText = string.Format("USE Faktura INSERT INTO dbo.Pracownicy(imie,nazwisko,login,haslo,uprawnienia) VALUES('{0}','{1}','{2}','{3}',0)", textBoxImie.Text, textBoxNazwisko.Text, textBoxLogin.Text, textBoxHaslo.Text);
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("Dodano nowego administratora", "Nowy Administrator", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        cmd.CommandText = string.Format("USE Faktura INSERT INTO dbo.Pracownicy(imie,nazwisko,login,haslo,uprawnienia) VALUES('{0}','{1}','{2}','{3}',1)", textBoxImie.Text, textBoxNazwisko.Text, textBoxLogin.Text, textBoxHaslo.Text, 1);
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("Dodano nowego sprzedawcę do bazy", "Nowy Sprzedawca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

            }
            conn.Close(); <font color="green">//zamykasz połączenie z bazą </font>
        } 

tak to mniej więcej wygląda u mnie :-)

czyli tak skrócie zapis do bazy może wyglądać tak:

SqlCommand cmd = conn.CreateCommand();<font color="green">//conn jest nazwą połączenia</font>
<font color="green">//polecenie SQL wstawiające nowego użytkownika</font>
cmd.CommandText = string.Format("USE Faktura INSERT INTO dbo.Pracownicy(imie,nazwisko,login,haslo,uprawnienia) VALUES('{0}','{1}','{2}','{3}',1)", textBoxImie.Text, textBoxNazwisko.Text, textBoxLogin.Text, textBoxHaslo.Text, 1);
<font color="green">//rozkaz wykonania polecenia</font>
cmd.ExecuteNonQuery();
0

Dzięki wszystkim za cenne porady i wskazówki.
Może zrobiłem to trochę prymitywnie, ale wydaje mi się, że jest to dość proste i skuteczne. Wklejam kod dla każdego komu może się przydać:

protected void Button1_Click(object sender, EventArgs e)
    {
        string imie = TextBox1.Text;
        string nazwisko = TextBox2.Text;
        int wiek = 0;
        int a;
        if (int.TryParse(TextBox3.Text, out a))
            wiek=int.Parse(TextBox3.Text);

        if (((imie != null) && (imie != "")) && (wiek != 0) && ((nazwisko != null) && (nazwisko != "")))
        {
            TextBox1.Text = "";
            TextBox2.Text = "";
            TextBox3.Text = "";
            SqlParameter Pimie = new SqlParameter("@imie", SqlDbType.VarChar, 20);
            Pimie.Direction = ParameterDirection.Input;
            Pimie.Value = imie;
            insertParameters.Add(Pimie);

            SqlParameter Pnazw = new SqlParameter("@nazwisko", SqlDbType.VarChar, 20);
            Pnazw.Direction = ParameterDirection.Input;
            Pnazw.Value = nazwisko;
            insertParameters.Add(Pnazw);

            SqlParameter Pwiek = new SqlParameter("@wiek", SqlDbType.Int);
            Pwiek.Direction = ParameterDirection.Input;
            Pwiek.Value = wiek;
            insertParameters.Add(Pwiek);
            
            SqlParameter Pmiasto = new SqlParameter("@miasto", SqlDbType.Int);
            Pmiasto.Direction = ParameterDirection.Input;
            Pmiasto.Value = odczyt_id_miasta();
            insertParameters.Add(Pmiasto);
           
            SqlDataSource1.Insert();
        }
    }
0

Taka mała uwaga:

        if (imie != null && imie != "")

To można zastąpić przez:

        if(!String.IsNullOrEmpty(imie))

;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1