Использование Winforms для подключения к SQL Server для простой фильтрации данных - PullRequest
1 голос
/ 02 июня 2011

У меня есть Winforms, который подключается к базе данных SQL Server 2008.

Я бы хотел иметь возможность легко фильтровать данные в одной таблице.

Вот пример того, что я хотел бы:

  • в таблице 3 столбца, и у меня будет три текстовых поля (или любой другой полезный элемент управления) в форме, которая будет соответствовать этим трем столбцам.
  • пользователь сможет ввести значение в любое из этих полей и получить остальные значения, относящиеся к этому полю.

Уже есть простое решение для этого?

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

Да, вы можете использовать DataSet или DataReader.

http://msdn.microsoft.com/en-us/library/ms171897%28v=vs.80%29.aspx

http://www.dotnetperls.com/datagridview-tutorial

2 голосов
/ 02 июня 2011

Я не думаю, что есть еще уникальный способ сделать это. В любом случае, вы можете просто использовать SqlCommand , что позволит вам выполнить хранимую процедуру или запрос, как вам нравится. Вы передаете три значения фильтра как SqlParameters .

Вот небольшой пример:

private static void ReadOrderData(string connectionString)
{
    string queryString = 
        "SELECT * FROM MyTable Where (FieldOne == @ParameterOne Or FieldTwo = @ParameterTwo Or FieldThree = @ParameterThree)";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        // Create the command
        SqlCommand command = new SqlCommand(
            queryString, connection);
        // Add the parameters

        command.Parameters.Add(new SqlParameter("ParameterOne", txtMyTextBox1.Text));
        command.Parameters.Add(new SqlParameter("ParameterTwo", txtMyTextBox2.Text));
        command.Parameters.Add(new SqlParameter("ParameterThree", txtMyTextBox3.Text));
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
    }
}

Затем вы используете SqlDataReader для получения значений.

...