Я создаю приложение, в котором храню свои входы (имя, возраст, телефон) из текстового поля, и когда я нажимаю Submit
, он должен хранить все, что я вход на текстовое поле в базу данных, но я получаю эту ошибку.Ошибка «System.Data.SqlClient.SqlException» произошла при попытке отладки приложения
исключения типа «System.Data.SqlClient.SqlException» произошло в System.Data.dll, но не был обработан в пользовательском коде. Дополнительная информация: Неправильный синтаксис рядом с ключевым словом «Таблица».
Вот код:
protected void Button1_Click(object sender, EventArgs e)
{
String p = UniqueNumber();
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings
["ConnectionString"].ConnectionString);
con.Open();
String str = "insert into Table(uniqueno, name, age, number) values('"
+ Label1.Text + "','" + txtName.Text + "','" + txtAge.Text + "','" + txtNumber.Text + "')";
SqlCommand cmd = new SqlCommand(str, con);
cmd.ExecuteNonQuery();
con.Close();
Session["id"] = Label1.Text;
Session["name"] = txtName.Text;
try
{
Response.Redirect("unique.aspx");
}
catch
{
Label1.Text = "Please enter correct details....";
this.Label1.ForeColor = Color.Red;
}
}
sql injection Уязвимость. использовать параметризованные запросы –
Вы действительно имеете в виду, что ошибка возникает только при попытке отладки приложения, а не при его запуске? Если это происходит при любом запуске, измените свой вопрос на «при попытке вставить в таблицу» –
также измените эту строку «Response.Redirect (« unique.aspx »);' to 'Response.Redirect (« ~ unique.aspx »)); также я надеюсь, что вы знакомы с PostBacks и как они работают. Убедитесь, что при отладке, что значения, которые вы передаете в команду SQL Insert, не являются нулевыми или пустыми и читаются на 'Parameterized Query's', и как их использовать и если 'Table' - это имя, то скопируйте его вокруг скобок, как этот' [Table] ', поскольку Table является зарезервированным Word в SQL – MethodMan