Как я могу исправить эту ошибку в ASP.NET с#?
Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
Ошибка Источника:
Строка 41: txtEmail.Текст = dtbl.Строки[0][4].Метод toString();
Линия 42: txtAge.Текст = dtbl.Строки[0][5].Метод toString();
Строка 43: ddlGender.Предметы.FindByValue(dtbl.Строки[0][6].Метод toString()).Selected = true;
Строка 44: txtSdate.Текст = dtbl.Строки[0][7].Метод toString();
Строка 45: txtEdate.Текст = dtbl.Строки[0][8].Метод toString();
Исходный файл: C:\Users\MOSH\Documents\Visual Studio 2015\Projects\ApartmentManagement\ApartmentManagement\Tenancy.aspx.cs Line: 43
трассировка стека:
[NullReferenceException: ссылка на объект не установлена на экземпляр объекта.]
Управление квартирами.Арендатор.Page_Load(отправитель объекта, EventArgs e) in C:\Users\MOSH\Documents\Visual Studio 2015\Projects\ApartmentManagement\ApartmentManagement\Tenancy.aspx.cs:43
System.Web.Util.CalliEventHandlerDelegateProxy.Обратный вызов(отправитель объекта, EventArgs e) +51
Системы.Веб.Пользовательского интерфейса.Контроль.OnLoad(EventArgs e) +95
System.Web.UI.Control.LoadRecursive() +59
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678
вот этот код
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace ApartmentManagement { public partial class Tenant : System.Web.UI.Page { String CS= ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { clear(); if (!String.IsNullOrEmpty(Request.QueryString["id"])) { int tenant_id = Convert.ToInt32(Request.QueryString["id"]); using (SqlConnection constring = new SqlConnection(CS)) { constring.Open(); SqlDataAdapter sqda = new SqlDataAdapter("userview", constring); sqda.SelectCommand.CommandType = CommandType.StoredProcedure; sqda.SelectCommand.Parameters.AddWithValue("@tenant_id", tenant_id); DataTable dtbl = new DataTable(); sqda.Fill(dtbl); hftenant_id.Value = tenant_id.ToString(); if (dtbl.Rows.Count > 0) { txtFName.Text = dtbl.Rows[0][1].ToString(); txtLName.Text = dtbl.Rows[0][2].ToString(); txtPhone.Text = dtbl.Rows[0][3].ToString(); txtEmail.Text = dtbl.Rows[0][4].ToString(); txtAge.Text = dtbl.Rows[0][5].ToString(); ddlGender.Items.FindByValue(dtbl.Rows[0][6].ToString()).Selected = true; txtSdate.Text = dtbl.Rows[0][7].ToString(); txtEdate.Text = dtbl.Rows[0][8].ToString(); txtDeposit.Text = dtbl.Rows[0][9].ToString(); } } } } } public void clear() { txtFName.Text = txtLName.Text = txtPhone.Text = txtEmail.Text = txtAge.Text = ddlGender.Text = txtSdate.Text = txtEdate.Text = txtDeposit.Text = ""; hftenant_id.Value = ""; } protected void btnSave1_Click(object sender, EventArgs e) { try { using (SqlConnection constring = new SqlConnection(CS)) { constring.Open(); SqlCommand sqlcmd = new SqlCommand("SPnew1", constring); sqlcmd.CommandType = CommandType.StoredProcedure; sqlcmd.Parameters.AddWithValue("@tenant_id", Convert.ToInt32(hftenant_id.Value == "" ? "0" : hftenant_id.Value)); sqlcmd.Parameters.AddWithValue("@F_Name", txtFName.Text.Trim()); sqlcmd.Parameters.AddWithValue("@L_Name", txtLName.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Email", txtEmail.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Age", txtAge.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Gender", ddlGender.SelectedValue); sqlcmd.Parameters.AddWithValue("@lease_id", 0); sqlcmd.Parameters.AddWithValue("@initial_date", txtSdate.Text.Trim()); sqlcmd.Parameters.AddWithValue("@end_date", txtEdate.Text.Trim()); sqlcmd.Parameters.AddWithValue("@deposit", txtDeposit.Text.Trim()); sqlcmd.ExecuteNonQuery(); clear(); } } catch (Exception ex) { } } protected void btnUpdate1_Click(object sender, EventArgs e) { { try { using (SqlConnection constring = new SqlConnection(CS)) { constring.Open(); SqlCommand sqlcmd = new SqlCommand("SPnew2", constring); sqlcmd.CommandType = CommandType.StoredProcedure; sqlcmd.Parameters.AddWithValue("@tenant_id", Convert.ToInt32(hftenant_id.Value == "" ? "0" : hftenant_id.Value)); sqlcmd.Parameters.AddWithValue("@F_Name", txtFName.Text.Trim()); sqlcmd.Parameters.AddWithValue("@L_Name", txtLName.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Email", txtEmail.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Age", txtAge.Text.Trim()); sqlcmd.Parameters.AddWithValue("@Gender", ddlGender.Text.Trim()); sqlcmd.Parameters.AddWithValue("@lease_id", 0); sqlcmd.Parameters.AddWithValue("@initial_date", txtSdate.Text.Trim()); sqlcmd.Parameters.AddWithValue("@end_date", txtEdate.Text.Trim()); sqlcmd.Parameters.AddWithValue("@deposit", txtDeposit.Text.Trim()); sqlcmd.ExecuteNonQuery(); clear(); } } catch (Exception ex) { } } } protected void btnDelete1_Click(object sender, EventArgs e) { try { using (SqlConnection constring = new SqlConnection(CS)) { constring.Open(); SqlCommand sqlcmd = new SqlCommand("SPnew3", constring); sqlcmd.CommandType = CommandType.StoredProcedure; sqlcmd.Parameters.AddWithValue("@tenant_id", Convert.ToInt32(hftenant_id.Value == "" ? "0" : hftenant_id.Value)); sqlcmd.ExecuteNonQuery(); clear(); } } catch (Exception ex) { } } } }
вот хранимая процедура
USE [Apartmentmanagementsystem] GO /****** Object: StoredProcedure [dbo].[userview] Script Date: 6/16/2018 1:18:54 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[userview] @tenant_id int as BEGIN select t1.F_Name,t1.L_Name,t1.Phone,t1.Email,t1.Age,t1.Gender ,t2.* from Tenant as t1 join Lease as t2 on t1.tenant_id=t2.tenant_id where t1.tenant_id=@tenant_id; end
Что я уже пробовал:
я несколько раз менял оператор select безрезультатно
Vincent Maverick Durano
какая конкретная строка в вашем коде вызывает ошибку?