Я добился поиска через одно раскрывающееся меню.
private void search_Click(object sender, EventArgs e)
{
string query = "SELECT * FROM magzines where issue_number = '"+comboBox1.Text+"'";
SqlDataAdapter sda = new SqlDataAdapter(query , con);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.Rows.Clear();
foreach (DataRow item in dt.Rows)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = item[0].ToString();
dataGridView1.Rows[n].Cells[1].Value = item[1].ToString();
dataGridView1.Rows[n].Cells[2].Value = item[2].ToString();
dataGridView1.Rows[n].Cells[3].Value = item[3].ToString();
}
}
пожалуйста, помогите мне, как я могу выполнить поиск в двух выпадающих меню?
вы можете использовать BindingSource
BindingSource source1 = new BindingSource();
source1.DataSource = view1;
// Set the data source for the DataGridView.
datagridview1.DataSource = dt ;
//The Filter string can include Boolean expressions.
source1.Filter = "artist = 'Dave Matthews' OR cd = 'Tigerlily'";
для получения дополнительной информации посетите http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.filter%28VS.90%29.aspx
Вы должны перейти на параметризованный запрос, чтобы избежать атак SQL-инъекций, а не конкатенации строки SQL, как вы это делаете. Чтобы ответить на вопрос, добавьте второе раскрывающееся меню и используйте BETWEEN в запросе...
string query = "SELECT * FROM magzines where issue_number BETWEEN '"+comboBox1.Text+"' AND '"+comboBox2.Text+"'";
Пример использования параметров...
using (SqlConnection conn = new SqlConnection(con))
{
string query = "SELECT * FROM magzines where issue_number BETWEEN '@comboOne' AND '@comboTwo'";
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.Add("comboOne", SqlDbType.VarChar).Value = comboBox1.Text;
cmd.Parameters.Add("comboTwo", SqlDbType.VarChar).Value = comboBox2.Text;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
da.Fill(table);
}
}