Фильтр данных в C # с использованием сервера SQL - PullRequest
0 голосов
/ 11 февраля 2010

Как отфильтровать данные в datagrid, например, если вы выберите поле со списком в student число, а затем введите 1001 в текстовое поле. Все записи в 1001 появятся в datagrid. Я использую sql server

private void button2_Click(object sender, EventArgs e)
{
    if (cbofilter.SelectedIndex == 0)
    {
        string sql;
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = "Server= " + Environment.MachineName.ToString() + @"\; Initial Catalog=TEST;Integrated Security = true";

        SqlDataAdapter da = new SqlDataAdapter();
        DataSet ds1 = new DataSet();
        ds1 = DBConn.getStudentDetails("sp_RetrieveSTUDNO");
        sql = "Select * from Test where STUDNO like '" + txtvalue.Text + "'";
        SqlCommand cmd = new SqlCommand(sql, conn);
        cmd.CommandType = CommandType.Text;
        da.SelectCommand = cmd;
        da.Fill(ds1);

        dbgStudentDetails.DataSource = ds1;
        dbgStudentDetails.DataMember = ds1.Tables[0].TableName;
        dbgStudentDetails.Refresh();
    }
    else if (cbofilter.SelectedIndex == 1)
    {
        //string sql;
        //SqlConnection conn = new SqlConnection();
        //conn.ConnectionString = "Server= " + Environment.MachineName.ToString() + @"\; Initial Catalog=TEST;Integrated Security = true";

        //SqlDataAdapter da = new SqlDataAdapter();
        //DataSet ds1 = new DataSet();
        //ds1 = DBConn.getStudentDetails("sp_RetrieveSTUDNO");
        //sql = "Select * from Test where Name like '" + txtvalue.Text + "'";
        //SqlCommand cmd = new SqlCommand(sql,conn);
        //cmd.CommandType = CommandType.Text;
        //da.SelectCommand = cmd;
        //da.Fill(ds1);

        // dbgStudentDetails.DataSource = ds1;
        //dbgStudentDetails.DataMember = ds1.Tables[0].TableName;
        //ds.Tables[0].DefaultView.RowFilter = "Studno = + txtvalue.text + "; 
        dbgStudentDetails.DataSource = ds.Tables[0];
        dbgStudentDetails.Refresh();
    }
}

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Вы не говорите, что не так с кодом, который вы закомментировали. Вы также не говорите, к какому типу относится столбец Студно.

Вы пробовали что-то вроде:

ds1.Tables[0].DefaultView.RowFilter = "Studno = '" + txtvalue.text + "'";
0 голосов
/ 11 февраля 2010

Сложно ответить на неопределенный вопрос. Я предполагаю, что вам придется адаптировать ваш SQL-запрос с помощью оператора WHERE, содержащего пользовательский ввод.

Если в поле со списком выбрано «номер студента», запросите это следующим образом (цифры начинаются с):

SELECT id, name, number FROM students WHERE number LIKE @search + '%'

Если выбрано «имя студента», используйте другой запрос (имена, содержащие):

SELECT id, name, number FROM students WHERE name LIKE '%' + @search + '%'

Пожалуйста, объясните, в каком смысле это касается C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...