protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection myConnection = new SqlConnection("server=VIVID-PC;Integrated Security = True;Database=SchoolDb");
SqlCommand myCommand = new SqlCommand("Command String", myConnection);
myConnection.Open();
string firstText = TextBox1.Text;
string SecondText = TextBox2.Text;
string thirdText = TextBox3.Text;
string fourthText = TextBox4.Text;
myCommand = new SqlCommand("INSERT INTO SchoolDb_Student(StudentName,RollNo,Session,MobileNo)values('" + firstText + "','" + SecondText + "' , '" + thirdText + "','" + fourthText + "')", myConnection);
myCommand.ExecuteNonQuery();
myConnection.Close();
Response.Redirect("/view.aspx");
}
ответ
- Use command with parameters to pass data to server.
- Убедитесь выбрасыванием подключения и команды (via using statement)
- Store connection strings in config file
- Не создавать фиктивные объекты команд
Вот полный код:
using(var connection = new SqlConnection(connectionString))
using(var command = connection.CreateCommand())
{
command.CommandText =
@"INSERT INTO SchoolDb_Student(StudentName,RollNo,Session,MobileNo)
VALUES (@studentName, @rollNo, @session, @mobileNo)";
command.Parameters.AddWithValue("studentName", TextBox1.Text);
command.Parameters.AddWithValue("rollNo", TextBox2.Text);
command.Parameters.AddWithValue("session", TextBox3.Text);
command.Parameters.AddWithValue("mobileNo", TextBox4.Text);
connection.Open();
try
{
command.ExecuteNonQuery();
}
catch(SqlException e)
{
if (e.Message.Contains("Violation of UNIQUE KEY constraint"))
// you got unique key violation
}
}
Дальнейших соображений - улучшение имен в ваш код - TextBox1, TextBox2 и т. д. ничего не говорит читателю. Дайте им соответствующие имена, такие как StudentNameTextBox, RollNoTextBox и т. Д. Также хорошей практикой является разделение доступа к данным и логики пользовательского интерфейса.
благодарит за вас предложения bro. – Ashiq
Если база данных обнаруживает нарушение уникального ключа, эта линия
myCommand.ExecuteNonQuery();
сгенерирует исключение. Вы можете поймать это исключение и продолжить свой собственный код:
try
{
myCommand.ExecuteNonQuery();
}
catch(Exception e)
{
// right here, "something" went wrong. Examine e to check what it was.
}
Пожалуйста, обратите внимание, что ваш код уязвим для атак с внедрением SQL. Вы должны использовать командные параметры вместо создания SQL вручную. Кроме того, вы должны использовать блоки using
(see here for details)
ExecuteNonQuery будет генерировать исключение, если он не может ввести строку INSERT в базу данных. В вашем случае это скорее всего SqlException. Лови.
thnks для предложения – Ashiq
используйте returnType from ExecuteNonQuery() (ознакомьтесь с разделом примечаний), чтобы обнаружить отказ при вставке. вы можете использовать исключение или no. затронутых строки части
Попробуйте это:
try
{
... your rest of the code
...
int rowsAffected = myCommand.ExecuteNonQuery(); // Most probaboly it will throw exception in case of Unique key violation. If not, still no rows have been affected
if(rowsAffected<1)
{
//your Alert for no records inserted
}
else
{
//your alert for successful insertion
}
}
catch(SqlException ex)
{
//check the exception and display alert
}
finally
{
//release connection and dispose command object
}
Как указывается в комментарии использование командных паров.
try
{
//Your other code
_myCommand.ExecuteNonQuery();
myConnection.Close();
Response.Redirect("/view.aspx");
}
catch(SqlException sqlExc)
{
// Your popup or msg.
}
Вы также выполняете цикл для различной ошибки sql в блоке catch.
- 1. Как использовать уникальный ключ как внешний ключ
- 2. Когда мы используем уникальный индекс и уникальный ключ?
- 3. Уникальный индекс или уникальный ключ?
- 4. Производительность для HashMap, когда ключ гарантирован Уникальный
- 5. Как искать уникальный ключ массива?
- 6. Как создать уникальный ключ пользователя
- 7. поведение IOS UITableView нарушается, когда не активен
- 8. Hibernate - уникальный ключ как внешний ключ
- 9. Когда нужно использовать уникальный ключ в таблице, чем первичный ключ?
- 10. Redis выпускает уникальный ключ
- 11. MySQL уникальный ключ сценарий
- 12. Уникальный ключ с условным
- 13. падения уникальный ключ и генерировать новый уникальный ключ
- 14. Составной первичный ключ и узел ограничений таблицы нарушается
- 15. Уникальный ключ с NULL
- 16. Как использовать уникальный композитный ключ
- 17. MySQL Partitioning Уникальный ключ
- 18. Уникальный ключ от Android
- 19. Уникальный ключ в MySql
- 20. Уникальный ключ не работает
- 21. составной первичный ключ и уникальный ключ как внешний ключ
- 22. React: уникальный «ключ» подпирать
- 23. Уникальный кеш-ключ ASP.NET
- 24. PHP - DynamoDB - Уникальный ключ
- 25. Уникальный ключ приложения
- 26. Уникальный ключ в Sphinx
- 27. Как решить проблему увеличения столбца Identity, когда нарушается внешняя связь?
- 28. Как получить уникальный первичный ключ в двух таблицах?
- 29. Как получить уведомление, когда уведомление начнет текущую активность в Android
- 30. Knockout.js связывание нарушается, когда свойство ViewModel переименован
[SQL Injection] (http://www.w3schools.com/sql/sql_injection.asp) обнаружено. Использовать параметры команды –
извините, я не могу получить вас. Помогите мне в конкретных я новичок. – Ashiq
вы можете нажать на ссылку –