строковая композиция в c # - PullRequest
       9

строковая композиция в c #

3 голосов
/ 29 декабря 2010

Я пытаюсь выяснить, почему этот код не работает в C # и как это исправить.

string first = "hello";
string second = "look at" + first + "me";

Есть предложения?

Редактировать: Извините, я думал, чтоошибка, которую я делал, была простой ошибкой новичка.Я думаю, это еще не все.Это мой фактический код:

 string toolOp = lstToolOpen.SelectedValue.ToString();
 string sqlComm = "INSERT INTO ES_TOOL_FACET (esfa_facet, esfa_tool) values (" +
            + toolOp + ", " +  cmbFacet.SelectedValue +"   ) ";

Я получаю ошибку: Оператор + не может быть применен к операнду типа 'строка'.Под 3-й строкой кода под toolOp находится красная линия.

1 Ответ

15 голосов
/ 29 декабря 2010

У вас есть два + до toolOp.Это должно быть:

string sqlComm = "INSERT INTO ES_TOOL_FACET (esfa_facet, esfa_tool) values (" +
        toolOp + ", " +  cmbFacet.SelectedValue +"   ) ";

При этом я рекомендую вам использовать параметризованные запросы.Помните, что каждый раз, когда вы используете оператор + при построении запроса SQL, вы делаете это неправильно:

string sqlComm = "INSERT INTO ES_TOOL_FACET (esfa_facet, esfa_tool) VALUES (@esfa_facet, @esfa_tool)";
sqlCommand.Parameters.AddWithValue("@esfa_facet", toolOp);
sqlCommand.Parameters.AddWithValue("@esfa_tool", cmbFacet.SelectedValue);

Теперь вы защищены от SQL-инъекций. использовать + с запросами SQL.

...