使用Winforms连接到SQL Server以轻松过滤数据

时间:2011-06-02 15:03:01

标签: c# .net sql sql-server-2008

我有一个连接到SQL Server 2008数据库的Winforms。

我希望能够轻松过滤一个表格中的数据。

这是我想要的一个例子:

  • 表格中有3列,我将在表格上有三个文本框(或任何其他有用的控件),对应于这三列。
  • 用户可以在任何一个字段中输入值,并检索与该字段相关的其余值。

对此已经有一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

我认为没有一种独特的方法可以做到这一点。无论如何,您只需使用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获取值。