Visual Studio 2008 - оператор SQL для обновления сетки данных - PullRequest
1 голос
/ 22 марта 2011

У меня есть объект datagridview, который показывает данные из базы данных SQL.Когда пользователь выполняет поиск по идентификатору клиента, я хочу, чтобы представление данных показывало правильную запись.Пока у меня есть код ниже, но он не работает, я не совсем уверен, нахожусь ли я на правильном пути, какие-нибудь идеи?

private void btnCustomerID_Click(object sender, EventArgs e)
    {
        if (txtCustomerID.TextLength == 0)
        {
            MessageBox.Show("Please enter a Customer ID to search by Customer ID");
            txtCustomerID.Focus();
        }
        else
        {

            String ID = txtCustomerID.Text;
            String sqlQuery = (sqlCommandCustomer.CommandText = ("SELECT * FROM Customers WHERE [CustomerID] LIKE ID"));
            dgCustomers.DataSource = sqlQuery;

        }

    }

Ответы [ 3 ]

1 голос
/ 22 марта 2011

Во-первых, вам нужно изменить

WHERE [CustomerID] LIKE ID

на

WHERE [CustomerID] = ID

или

WHERE [CustomerID] LIKE %ID%
1 голос
/ 22 марта 2011

Игнорирование SQL-инъекции и даже передача параметров в запрос.

Ваша основная проблема в том, что вы знаете, что ХОТИТЕ делать, но не знаете, как выразить это в коде.

Pseudo Code:
    1.  Get the ID you want to filter for.
    2.  Pass the ID to a SQL statement.
    3.  Open a connection to the database.
    4.  Execute the SQL via a SQL command.
    5.  Store the result.
    5.  Close the open connection.
    6.  Databind the results to your datagrid.
1 голос
/ 22 марта 2011

Я не думаю, что вы можете сделать это. То, что я хотел бы сделать, это поместить первоначальный запрос в таблицу данных и отфильтровать ее, используя метод select. Для справки: http://msdn.microsoft.com/en-us/library/system.data.datatable.select.aspx

...