НЕ ДЕЛАЙТЕ ЭТОГО
То, что у вас есть, опасно уязвимо к атакам SQL-инъекций;это практически просит, чтобы его взломали.
Существует лучший способ выполнить то же самое, что безопасно от этих атак, а также решает вашу строку против проблемы int:
string SQLstr = "SELECT [column] FROM [DB].[Table] WHERE [column]= @Parameter";
var cmd = new SqlCommand(SQLstr, conn);
cmd.Parameter.Add("@Parameter", SqlDbType.Int).Value = int.Parse(textBox1.Text);
или
string SQLstr = "SELECT [column] FROM [DB].[Table] WHERE [column]= @Parameter";
var cmd = new SqlCommand(SQLstr, conn);
cmd.Parameter.Add("@Parameter", SqlDbType.VarChar, 20).Value = textBox1.Text;
Обратите внимание, что вы все еще должны знать, какое значение вы ожидаете для этого места в запросе. Ничто не спасает вас от этого, потому что мы живем в строго типизированном мире.Даже метод AddWithValue()
, который может определить тип данных, имеет веских причин не использовать его .