Здесь у меня есть этот метод в моем файле CandidateOp
.Escape single quote in sql query C#
public SqlDataReader getpartyID(string partyName)
{
string query = "EXEC partyIDtoInsert'" +partyName+ "'";
return new DataAccessLayer().executeQuerys(query);
}
Я пропускание ComboBox
текста в форме и я получаю ID
к целому типу переменной tempPrID
.
SqlDataReader reader02 = new CandidateOP().getpartyID(cmbParty.Text);
if (reader02.HasRows)
{
while (reader02.Read())
{
tempPrID = (Int32)reader02[0];
}
reader02.Close();
}
else
{
MessageBox.Show("Please enter a valid Party Name", "Invalid DATA");
}
partyIDtoInsert
, хранимая процедура я создал и она вызывается в методе getpartyID
, как показано выше, чтобы получить идентификатор единой национальной партии.
EXEC partyIDtoInsert 'United National Party';
Если у меня есть имя партии под названием «Объединенная народная свобода Альянс», так что если я хочу вставить это имя, моя хранимая процедура выполнения коды выглядит следующим образом.
EXEC partyIDtoInsert 'United People's Freedom Alliance';
В этом случае он рассматривает конечную точку как единую котировку People и возвращает меня с исключением sql.
Как избежать этой проблемы с одиночной кавычкой в инструкции для выполнения моей хранимой процедуры.
it работает. Огромное спасибо .. – chathwind
Проголосовал за то, что проголосовать не было объяснено. Несмотря на то, что этот метод открыт для SQL-инъекции, он не должен быть проголосован. – Measuring