Рейтинг:
10
Karthik_Mahalingam
попробовать это
private void desempenho_SelectedIndexChanged(object sender, EventArgs e)
{
FillData();
}
private void valu_SelectedIndexChanged(object sender, EventArgs e)
{
FillData();
}
private void FillData()
{
string combo1value = desempenho.Text;
string combo2value = valu.Text;
string query = "select [desc],[enchimento],[compo] from vidros ";
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand.Connection = con;
if (combo1value != "")
{
query += " where desempenho = @emp ";
sda.SelectCommand.Parameters.Add("@emp", SqlDbType.NVarChar).Value = combo1value;
}
if (combo2value != "")
{
if (combo2value == "") query += " where valu = @emp2 ";
else
query += " and valu = @emp2 ";
sda.SelectCommand.Parameters.Add("@emp2", SqlDbType.NVarChar).Value = combo2value;
}
sda.SelectCommand.CommandText = query;
DataTable DTT = new DataTable();
sda.Fill(DTT);
listView1.Items.Clear();
for (int i = 0; i < DTT.Rows.Count; i++)
{
DataRow dr = DTT.Rows[i];
ListViewItem listitem = new ListViewItem(dr["desc"].ToString());
listitem.SubItems.Add(dr["enchimento"].ToString());
listitem.SubItems.Add(dr["compo"].ToString());
listView1.Items.Add(listitem);
}
}
Marc-IT
Спасибо за помощь,
Я получаю ошибку в строке: ПДД.Команды selectcommand.Connection = con; ошибка: ссылка на объект не была определена как экземпляр объекта
Karthik_Mahalingam
попробовать это
string combo1value = desempenho.Text;
string combo2value = valu.Text;
string query = "select [desc],[enchimento],[compo] from vidros ";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
if (combo1value != "")
{
query += " where desempenho = @emp ";
cmd.Parameters.Add("@emp", SqlDbType.NVarChar).Value = combo1value;
}
if (combo2value != "")
{
if (combo2value == "") query += " where valu = @emp2 ";
else
query += " and valu = @emp2 ";
cmd.Parameters.Add("@emp2", SqlDbType.NVarChar).Value = combo2value;
}
cmd.CommandText= query;
cmd.CommandType= CommandType.Text;
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable DTT = new DataTable();
.
.
.
Marc-IT
Удивительно, вот и все :D Спасибо
Еще один вопрос: если бы у меня было еще 3 комбо-бокса после этих 2, Можно ли было бы использовать тот же метод?
Karthik_Mahalingam
крутой,
да, до n-го числа элементов управления.
Marc-IT
Извините, что беспокою вас, но один последний вопрос, я отредактировал свой пост.
Я воспроизвел код, но мне кажется, что что-то не так, не могли бы вы мне помочь, пожалуйста? и еще раз спасибо за вашу доброту
Karthik_Mahalingam
string query = "select [desc],[enchimento],[compo] from vidros where 1=1 ";
string queryWhere ="";
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand.Connection = con;
if (combo1value != "")
{
queryWhere += " and desempenho = @emp ";
sda.SelectCommand.Parameters.Add("@emp", SqlDbType.NVarChar).Value = combo1value;
}
if (combo2value != "")
{
queryWhere+= " and valu = @emp2 ";
sda.SelectCommand.Parameters.Add("@emp2", SqlDbType.NVarChar).Value = combo2value;
}
if (combo3value != "")
{
queryWhere += " and column1 = @emp3 ";
sda.SelectCommand.Parameters.Add("@emp3", SqlDbType.NVarChar).Value = combo3value;
}
if (combo4value != "")
{
queryWhere += " and column2 = @emp4 ";
sda.SelectCommand.Parameters.Add("@emp4", SqlDbType.NVarChar).Value = combo4value;
}
if (combo5value != "")
{
queryWhere += " and column3 = @emp5 ";
sda.SelectCommand.Parameters.Add("@emp5", SqlDbType.NVarChar).Value = combo5value;
}
sda.SelectCommand.CommandText = query + queryWhere;
DataTable DTT = new DataTable();
измените имена столбцов в запросе
Marc-IT
Привет,
Прежде всего, большое спасибо за помощь.
к сожалению, теперь я получаю ошибку. В строке:ПДД.Команды selectcommand.Подключение = кон;
Ссылка на объект не была определена как экземпляр объекта.
не могли бы вы помочь, пожалуйста?
Спасибо снова
Karthik_Mahalingam
SqlConnection con = new SqlConnection ();
string query = "select [desc],[enchimento],[compo] from vidros where 1=1 ";
string queryWhere = "";
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
sda.SelectCommand = cmd;
if (combo1value != "")
{
queryWhere += " and desempenho = @emp ";
sda.SelectCommand.Parameters.Add("@emp", SqlDbType.NVarChar).Value = combo1value;
}
if (combo2value != "")
{
queryWhere += " and valu = @emp2 ";
sda.SelectCommand.Parameters.Add("@emp2", SqlDbType.NVarChar).Value = combo2value;
}
if (combo3value != "")
{
queryWhere += " and column1 = @emp3 ";
sda.SelectCommand.Parameters.Add("@emp3", SqlDbType.NVarChar).Value = combo3value;
}
if (combo4value != "")
{
queryWhere += " and column2 = @emp4 ";
sda.SelectCommand.Parameters.Add("@emp4", SqlDbType.NVarChar).Value = combo4value;
}
if (combo5value != "")
{
queryWhere += " and column3 = @emp5 ";
sda.SelectCommand.Parameters.Add("@emp5", SqlDbType.NVarChar).Value = combo5value;
}
sda.SelectCommand.CommandText = query + queryWhere;
DataTable DTT = new DataTable();
Karthik_Mahalingam
string query = " select [desc], [enchimento], [compo] from vidros where 1=1 ";
строки queryWhere = "";
SqlDataAdapter sda = новый SqlDataAdapter();
Команда sqlcommand команду cmd = новый sqlcommand, который();
УМК.Подключение = кон;
АСД.Команды selectcommand = ЦМД;
if (combo1value != "")
{
queryWhere + = " и desempenho = @emp ";
АСД.Команды selectcommand.Parameters. Add ("@emp", SqlDbType.NVarChar).Значение = combo1value;
}
если (combo2value != "")
{
queryWhere + = " и valu = @emp2 ";
АСД.Команды selectcommand.Parameters. Add ("@emp2", SqlDbType.NVarChar).Значение = combo2value;
}
если (combo3value != "")
{
queryWhere + = " и column1 = @emp3 ";
АСД.Команды selectcommand.Parameters. Add ("@emp3", SqlDbType.NVarChar).Значение = combo3value;
}
если (combo4value != "")
{
queryWhere + = " и column2 = @emp4 ";
АСД.Команды selectcommand.Parameters. Add ("@emp4", SqlDbType.NVarChar).Значение = combo4value;
}
если (combo5value != "")
{
queryWhere + = " и column3 = @emp5 ";
АСД.Команды selectcommand.Parameters. Add ("@emp5", SqlDbType.NVarChar).Значение = combo5value;
}
АСД.Команды selectcommand.CommandText = query + queryWhere;
DataTable DTT = новый DataTable();
Marc-IT
Идеальный.
Еще раз спасибо, ты спасаешь мне жизнь ;)
Karthik_Mahalingam
добро пожаловать :)
Marc-IT
Привет еще раз,
Извините, что снова беспокою. Но только простой вопрос.
С вашей помощью я получил фильтрацию, отлично работающую с комбобоксами.
Но можно ли заполнить listview при загрузке формы всеми данными из таблицы типа "select * from vidros", чтобы, если пользователь захочет отфильтровать данные, он мог использовать comboboxes? на данный момент listview отображает данные только тогда, когда я выбираю элемент.
Спасибо снова
Karthik_Mahalingam
да возможно
Marc-IT
Круто,
Im собираюсь попробовать.
спасибо снова
Karthik_Mahalingam
хорошо, я буду спать ... ГН