Как использовать переменную из моего кода в выражении SQL? - PullRequest
0 голосов
/ 09 марта 2011

Я конвертирую строку в целое число, а затем вставляю это число в мою таблицу сообщений.

int currTopicID = Convert.ToInt32(id.Text);

SqlCommand cmd = new SqlCommand("INSERT INTO post VALUES(currTopicID)", con);

Проблема в том, что currTopicID не распознается как целое число, когда я выполняю вставку. любая помощь будет принята с благодарностью.

Ответы [ 4 ]

2 голосов
/ 09 марта 2011

Вместо этого вы можете использовать параметр:

int currTopicID = Convert.ToInt32(id.Text);

SqlCommand cmd = new SqlCommand("INSERT INTO post VALUES(@currTopicID)", con);

cmd.Parameters.Add("@currTopicID", SqlDbType.Int).Value = currTopicID.Tostring();

//OR   cmd.Parameters.AddWithValue("@currTopicID",currTopicID.Tostring()); 

cmd.ExecuteNonQuery();

С уважением

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

у вас неверное утверждение.

Используйте вместо

SqlCommand cmd = new SqlCommand("INSERT INTO post VALUES("+currTopicID.ToString()+")", con);

Или используйте параметризованный запрос.

0 голосов
/ 09 марта 2011

Вы действительно должны использовать хранимую процедуру с параметром. Делая это, вы избежите SQL инъекций.

0 голосов
/ 09 марта 2011

Лучше всего использовать параметры при передаче переменных в MS SQL.Еще лучше использовать хранимые процедуры

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