Я получаю ошибку в строке 22
Ошибка сервера в приложении'/'.
Ссылка на объект не устанавливается на экземпляр объекта.
Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
Ошибка Источника:
Строка 20: строка checkuser = "SELECT * FROM register where [USERNAME]='"+TextBoxunm.Текст+"'";
Строка 21: SqlCommand com = new SqlCommand(checkuser,conn);
Строка 22: int temp = Convert.ToInt32(com.ExecuteScalar().Метод toString());
Строка 23: if (temp == 1)
Строка 24: {
Исходный Файл: C:\Users\Hetvi\source\repos\loginpage\loginpage\register.aspx.cs Строка: 22
трассировка стека:
[NullReferenceException: ссылка на объект не установлена на экземпляр объекта.]
loginpage.зарегистрироваться.Page_Load(отправитель объекта, EventArgs e) in C:\Users\Hetvi\source\repos\loginpage\loginpage\register.aspx.cs:22
System.Web.Util.CalliEventHandlerDelegateProxy.Обратный вызов(отправитель объекта, EventArgs e) +52
Системы.Веб.Пользовательского интерфейса.Контроль.OnLoad(EventArgs e) +97
System.Web.UI.Control.LoadRecursive() +61
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +693
вот моя программа aspx-файл.в CS
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Configuration; namespace loginpage { public partial class register : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(IsPostBack) { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["KNOWLEDGEConnectionString"].ConnectionString); conn.Open(); string checkuser = "SELECT * FROM register where [USERNAME]='"+TextBoxunm.Text+"'"; SqlCommand com = new SqlCommand(checkuser,conn); int temp = Convert.ToInt32(com.ExecuteScalar().ToString()); if (temp == 1) { Response.Write("user already exsist"); } conn.Close(); } } protected void Button1_Click(object sender, EventArgs e) { try { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["KNOWLEDGEConnectionString"].ConnectionString); conn.Open(); string insertquery = "insert into register(username,email password,country) values(@un,@email,@pass,@coun)"; SqlCommand com = new SqlCommand(insertquery, conn); com.Parameters.AddWithValue("@un",TextBoxunm.Text); com.Parameters.AddWithValue("@email",TextBoxemail.Text); com.Parameters.AddWithValue("@pass",TextBoxpass.Text); com.Parameters.AddWithValue("@coun",TextBoxcoun.Text); com.ExecuteNonQuery(); Response.Redirect("Manager.aspx"); Response.Write("registration sucessfull"); conn.Close(); } catch(Exception ex) { Response.Write("error :"+ex.ToString()); } } } }
Что я уже пробовал:
я проверил свои подключения к базе данных
Richard Deeming
В дополнение к этому SQL-инъекция[^] уязвимость в вашем коде, вы также храните пароли в виде обычного текста. Не делай этого.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]