0

自分のページからユーザーを選択し、登録フォームを既に作成したdefault_information.aspx.cs自分のページにそのユーザー情報を表示しようとしています。registration.aspx

エラーが発生してSystem.NullReferenceException:Object reference not set to an instance of an objectいます。私を助けてください。主要部分をあげました。デバッグしました。DB からすべてのデータがstring strusernameで選択されていることがわかりましstrpasswordた。usernametxt.Text = strusername;しかし、そのテキスト フィールドにユーザー名またはパスワードを表示しようとすると、コードが壊れます。

default_information を含む

    protected void gridviewprofile_SelectedIndexChanged(object sender, EventArgs e)
    {
        registration objdef = new registration();
        string username = gridviewprofile.Rows[gridviewprofile.SelectedIndex].Cells[1].Text;
        objdef.displayuser(username);
    }
    protected void update_Click(object sender, EventArgs e)
    {
        Response.Redirect("registration.aspx");
    }

registration.aspx が含まれています

    protected void register_Click(object sender, EventArgs e)
    {
        user objuser = new user();
        objuser.username = usernametxt.Text;
        objuser.password = passwordtxt.Text;
        objuser.email = emailtxt.Text;
        objuser.Save();
    }
    public void displayuser(string username)
     {   user obj = new user();
        DataSet objDataset = obj.profile(username);
        string strusername = objDataset.Tables[0].Rows[0][0].ToString();
        string strpassword = objDataset.Tables[0].Rows[0][1].ToString();
        string stremail = objDataset.Tables[0].Rows[0][2].ToString();      
        usernametxt.Text = strusername;
        passwordtxt.Text = strpassword;
        emailtxt.Text = stremail;            
    }

ユーザークラスが含まれています

public class user
{    
    public void Save()
    {
        clssqlserver obj = new clssqlserver();
        obj.insertuser_info(Username,Password,Email);                           
    }
     public DataSet profile(string username)
    {
        clssqlserver obj = new clssqlserver();
        return obj.getalluser_info(username);
    }

}

clssqlserver が含まれています

    public DataSet getalluser_info(string username)
    {
        string connectionstring = "Data Source=localhost\\mssql;Initial Catalog=blooddb;Integrated Security=True";
        SqlConnection objconnection = new SqlConnection(connectionstring);
        objconnection.Open();
        string command = "Select * from login_donor where username='" + username + "' ";
        SqlCommand objcommand = new SqlCommand(command, objconnection);
        DataSet objdataset = new DataSet();
        SqlDataAdapter objadapter = new SqlDataAdapter(objcommand);
        objadapter.Fill(objdataset);
        objconnection.Close();
        return objdataset;
    }
    public bool insertuser_info(string username,string password,string email)

      {     string connectionstring = "Data Source=localhost\\mssql;Initial Catalog=blooddb;Integrated Security=True";
            SqlConnection objconnection = new SqlConnection(connectionstring);
            objconnection.Open();
            string strInsertCommand = "insert into login_donor values('"+ username +"','"+ password + "','"+email+"')";
            SqlCommand objcommand = new SqlCommand(strInsertCommand, objconnection);
            objcommand.ExecuteNonQuery();
            objconnection.Close();
            return true;
     }
4

3 に答える 3

0

asp.net create user ウィザード コントロールを使用しているようです。コントロールは別のコンテナー内に埋め込まれているため、少し掘り下げた後に報酬を受け取る必要があります。掘り始めましょう......

すでにアクセス可能なウィザードを使用して、テキスト ボックスを見つけます

TextBox  usernametxt= (TextBox)CreateUserWizard.FindControl("usernametxt");
usernametxt.Text = strusername;

これが役立つことを願っています。

于 2013-07-11T12:59:59.493 に答える