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
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))
;)