konto usunięte

Temat: Pomoc C# + mysql + textboxy

Witam, zwracam się z ogromną prośbą o pomoc.
Jestem osobą o praktycznie zerowej wiedzy na temat programowania a jednak chciałem prosić o pomoc,poradę.

Sprawa wygląda następująco:
- mam pole textbox1, wpisuje tam np test, jest to pole login w zapytaniu do bazy mysql ( w tablicy login mam usera test o id równym 4),
- zapytanie do bazy używając tego textboxa zwraca wartość id np cyfrę 4,
- jak przypisać wartość id='4' do kolejnego (nowego) textboxa (aby była od razu wpisana w pole textboxa i można było wykonać kolejne zapytanie).

Całość męczę w visual studio express 2013 for desktop używając języka c# (przynajmniej w teori)

Temat: Pomoc C# + mysql + textboxy

Ale chodzi o stronę www (grupa ASP.NET) czy aplikację okienkową?
Jeśli o tę drugą, to: this.TextBox2.Text = "wartość ID odczytana z bazy danych"Ten post został edytowany przez Autora dnia 04.03.15 o godzinie 00:03

konto usunięte

Temat: Pomoc C# + mysql + textboxy

string MyConnection = "datasource=localhost;port=3306;username=root;password=root;database=baza1568_12";
MySqlConnection MyConn = new MySqlConnection(MyConnection);
MySqlCommand MyCommand = new MySqlCommand("select id from logowanie_dyrektorzy where login='" + this.textBox2.Text + "';", MyConn);
MyConn.Open();



MySqlDataAdapter MyAdapter = new MySqlDataAdapter();

MyAdapter.SelectCommand = MyCommand;
//pobranie wartosci id z bazy i zapis do zmiennej id
DataSet id = new DataSet();
MyAdapter.Fill(id);

//MessageBox.Show("Pobrało id");

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView1.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.
MyConn.Close();

this.TextBox3.Text = id ??

Pole TextBox3 chciałbym aby miało wartość wyświetloną na dataGrid = pobraną do id.
Przy powyższym przypisaniu wywala błąd:
Cannot implicitly convert type 'System.Data.DataSet' to 'string'
Chodzi oczywiście o aplikację okienkową.Ten post został edytowany przez Autora dnia 04.03.15 o godzinie 09:08

Temat: Pomoc C# + mysql + textboxy

Po pierwsze, w ten sposób (przez bezpośrednie podstawienie do kwerendy SQL zawartości pola tekstowego) zrobiłeś sobie "edytor bazy danych". Zapoznaj się z tematem SQL injection, a następnie - jak uniknąć tego rodzaju problemów. Dzięki temu unikniesz potencjalnie paskudnych problemów, gdy ktoś obcy (inny użytkownik) zacznie eksperymentować. Mówiąc krótko: można w ten sposób usuwać i zmieniać zawartość rekordów (fałszowanie danych), usunąć pojedyncze tabele, a w przypadku źle zabezpieczonej bazy danych (praca na wysokich uprawnieniach, nierzadko administratora) - dobrać się do całej bazy danych (serwera).

Po drugie - do pola tekstowego trzeba podstawić pojedynczą wartość, a nie cały obiekt datasetu (kolekcji danych).

Jeśli po prostu ma się przepisać wartość z grida i jest to jedyna wartość w tym gridzie, to:
this.textBox3.Text = this.dataSet1.Tables[0].Rows[0]["ID"].ToString();

(dopasuj do tego co masz w datasecie)

Jeśli tych wartości jest więcej i chodzi o pokazanie zawartości zaznaczonej wartości w gridzie, to:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
this.textBox3.Text = ((DataTable) this.dataGridView1.DataSource).Rows[e.RowIndex][e.ColumnIndex].ToString();
}


A jeśli nie potrzebujesz tego całego grida, bo pobierasz tylko jedną konkretną wartość z bazy danych (marnotrawstwo zasobów), to:

1. użyj MyCommand .ExecuteScalar().ToString() - pobierze wartość z 1 wiersza i 1 kolumny
2. poczytaj o DataReader, który jest metodą szybkiego dostępu do danych w trybie tylko do odczytu. Kod będzie wyglądał mniej więcej tak (nie mam teraz czasu tworzyć bazy danych i podpinać się dla testu)
   MySqlDataReader reader = MyCommand.ExecuteReader();

// jeśli jest więcej rekordów, to if zamień na while
if (reader.NextResult())
{
this.textBox3.Text = reader.GetString(0);
}
reader.Close();


PS: jeśli piszesz aplikacje okienkowe, zapisz się także do grupy Programiści .NET. To jest grupa bardziej dla programistów aplikacji internetowych.Ten post został edytowany przez Autora dnia 04.03.15 o godzinie 11:59

konto usunięte

Temat: Pomoc C# + mysql + textboxy

Dziękuję za informacje.
Aplikacja oczywiście jest tylko w sieci lan na potrzeby usprawnienia działania wewn systemu obiegu dokumentów. Nie sądzę aby ktokolwiek starał się tu wykonać SQL Inj, ale rozumiem zagorzenie. Dzięki za cenne wskazówki. Zasiadam do lektury.

konto usunięte

Temat: Pomoc C# + mysql + textboxy

Problem był banalny, wystarczyło zmienić aby nie wyświetlało na gridzie i wkleić twój kod:

MySqlDataReader myReader = MyCommand.ExecuteReader();

if (myReader.Read())
{
this.textBox1.Text = (myReader.GetString(0));
}
}
finally
{
// myReader.Close();
// MyConn.Close();
}
}

Jeszcze raz wielkie dzięki :)

Następna dyskusja:

asp i mysql




Wyślij zaproszenie do