В чем ошибка в этом коде? - PullRequest
0 голосов
/ 19 августа 2011

Я хочу воспроизвести строку в richtextbox

private void button1_Click(object sender, EventArgs e) {
        SqlConnection con = new SqlConnection("Data Source=MOSTAFA\\SQLEXPRESS;Initial Catalog=company;Integrated Security=True");
        SqlCommand com = new SqlCommand("select * from data where id='"+textBox1.Text+"')",con);
        con.Open();
        SqlDataReader read = com.ExecuteReader();
        if (read.Read())
            richTextBox1.Text = "id" + read[0].ToString();
        else
            label3.Text=("The client didn't found");
    }

Ответы [ 2 ]

2 голосов
/ 19 августа 2011

В сгенерированном запросе есть ошибка. У вас есть закрывающая скобка без открывающей. Строка, которая у вас есть, выдает:

select * from data where id='sometest')

, что приведет к синтаксической ошибке SQL Server.

Попробуйте вместо этого:

SqlCommand com = new SqlCommand("select * from data where id='"+textBox1.Text+"'",con);
0 голосов
/ 19 августа 2011

У вас есть лишние скобки в этом операторе SQL.

Но что более важно, вы оставляете себя широко открытым для SQL-инъекций.Чтобы обойти эту разрушительную и легко решаемую проблему, используйте параметризованные запросы.

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