Я разрабатываю сайт Asp.net, и я решил сделать это, используя концепции oop.Ошибка при вызове кода из другого класса в Asp.net
поэтому мои первые мысли состоят в том, чтобы инкапсулировать мой код (весь позади кода) во внешний класс, а затем вызвать его на моей странице Aspx для выполнения.
я создал новый класс, то я вывел ее из основного класса, чтобы иметь возможность доступа к основнымам управления класса, как кнопки, этикетка и т.д. ...
, когда я называю метод, который включает в себя код дает мне ошибка
«Ссылка на объект не установлена в экземпляр объекта».
так, как я думаю, что это означает, что мой второй класс (производный один) не может получить доступ к моим основным объектам класса/управления и выполнения кода в зависимости от его значения.
Метод должен выполнять некоторый код в зависимости от DropDownList, но он дает эту ошибку.
Я очень ценю вашу помощь!
1-заду код для основного класса, который в (страницы ASPX) Метод:
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.Data;
namespace power_CMS.Authentication
{
public partial class Permissions : System.Web.UI.Page
{
//connection string
//db name = cms
SqlConnection conn = new SqlConnection("data source=.\\sqlexpress ; initial catalog=cms ; integrated security = true");
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_grant_Click(object sender, EventArgs e)
{ //grant permission to Members
Cms c = new Cms();
c.User_Role_Insert();
}
2-часть дизайнерского кода для моей страницы ASPX
protected global::System.Web.UI.WebControls.DropDownList drp_user;
/// <summary>
/// UserDataSource control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
3-Вот код для моего производного класса, который я инкапсулированный мой код в нем:
namespace power_CMS
{
public class Cms :power_CMS.Authentication.Permissions
{
//sql connection
public static SqlConnection conn = new SqlConnection("data source=.\\sqlexpress ; initial catalog=*** ; integrated security = true");
public void User_Role_Insert()
{
if (drp_user.SelectedIndex == 0 && drp_permission.SelectedIndex == 0 || drp_user.SelectedIndex == 0 || drp_permission.SelectedIndex == 0)
{
//make sure that user will make a valid choise with both dropdownlists
//Invalid Choise Code
lbl_confirm.Text = "Please Make A Valid Choise !";
}
else
{
// Valid Choise Code
try
{
conn.Open();
// string str = "insert into aspnet_UsersInRoles(UserId,RoleId) values('"+c.drp_user.SelectedValue+"','"+drp_permission.SelectedValue+"')";
SqlCommand cmd = new SqlCommand("aspnet_UsersInRoles_Insert", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("UserId", SqlDbType.UniqueIdentifier).Value = new Guid(drp_user.SelectedValue);
cmd.Parameters.Add("RoleId", SqlDbType.UniqueIdentifier).Value = new Guid(drp_permission.SelectedValue);
cmd.ExecuteNonQuery();
conn.Close();
lbl_confirm.Text = "Permission Granted ...!";
drp_user.SelectedIndex = 0;
drp_permission.SelectedIndex = 0;
}
catch (Exception)
{
lbl_confirm.Text = "Sorry <br> This User Already Have A Permission ! ";
}
}
}
}
}
Какая строка кода генерирует ошибку? – ekad
Поместите контрольную точку в свой код и посмотрите, какой объект является «null» – Shyju
@ekad if (drp_user.SelectedIndex == 0 && drp_permission.SelectedIndex == 0 || drp_user.SelectedIndex == 0 || drp_permission.SelectedIndex == 0) ,,, Эта строка, которая генерирует ошибку! –