Доброе утро, я делаю контрольную по БД и вроде бы все нормально но возникло пару вопрос, которые не получаеться правильно сделать, скажу честно я не когда не работал с БД и C# только с PHP + MySQL, но благо MSDN есть.
У меня есть база данных, и в приложение есть кнопки которые должны отфильтровать по дате рождения и по городу я это сделал так
private void 18летToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
DataView dv = dt.DefaultView;
int date = year -18;
dv.RowFilter = String.Format("date > '{0}'", date);
dataGridView_Main.DataSource = dv;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Все работает круто )) но есть проблема, мне вот эту сортировку тем кому по 18 лет надо отсортировать по алфавиту, причем пользователь толжен нажать кнопку для сортировки по алфавиту
я тоже написал код
private void аДоЯToolStripMenuItem_Click(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = String.Format("year = {0}", year);
dataGridView_Main.DataSource = dv;
this.dataGridView_Main.Sort(this.dataGridView_Main.Columns["name"], ListSortDirection.Ascending);
}
Но проблема в том что сортируется вся БД в datagridview а не то что я сортировал по возрасту.
Я решил написать метод для выборки сортировки данных через БД
вот код
//Сортировка с 1 парараметром
public DataTable Sort(int date)
{
int rokiv = this.year - date;
DataTable dt = new DataTable("table");
SQLiteConnection connection = new SQLiteConnection(connect_db);
string sql = String.Format("SELECT id, year, number, name, date, vidil, vpo, invalde FROM '{0}' WHERE date > {1} AND year = {2}", tablename, date, year);
SQLiteCommand command = new SQLiteCommand(sql, connection);
connection.Open();
dAdpt = new SQLiteDataAdapter(command);
dAdpt.Fill(dt);
connection.Close();
return dt;
}
и вот так я попробывал заполнить таблицу datagridview
private void до7РоківToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
/* DataView dv = dt.DefaultView;
int date = year -7;
dv.RowFilter = String.Format("date > '{0}' AND year = {1}", date, year);
dataGridView_Main.DataSource = dv;*/
dt = db.Sort(18);
dataGridView_Main.DataSource = dt;
DataView dv = dt.DefaultView;
dataGridView_Main.DataSource = dv;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Но не чего не произошло, как был общая таблица так и есть
Может что то подскажите или поможите найти ошибку
Мне надо так что бы выборки всем кому 18 лет, пользователь мог отсортировать по алфавиту причем при нажатие на кнопку