0

さて、他のエラーは、他のページのコードを更新する必要があるこの時点で修正されました。

エラー : オブジェクト参照がオブジェクトのインスタンスに設定されていません。

 public partial class Controls_GetUserScraps : System.Web.UI.UserControl

{

DataBaseClass dbClass = new DataBaseClass();
public DataTable dt;

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {

        GetUserScraps(int.Parse(Session["UserId"].ToString()));
    }
}
public void GetUserScraps(int Id)
{
    string getUserScraps = "SELECT u.Id as UserId,u.FirstName,,u.LastName,u.ImageName,s.FromId,s.ToId,s.Message,s.SendDate,s.ID as ScrapId FROM [User] as u, Scrap as s WHERE u.Id=s.FromId AND s.ToId='" + Request.QueryString["Id"].ToString() + "'";
    dt = dbClass.ConnectDataBaseReturnDT(getUserScraps);
    if (dt.Rows.Count > 0)
    {
        GridViewUserScraps.DataSource = dt;
        GridViewUserScraps.DataBind();
    }
}

セッション ID を UserId に置き換えたところ、エラーが削除され、別のエラーが表示されるようになりました。

エラー : オブジェクト参照がオブジェクトのインスタンスに設定されていません。 ここに画像の説明を入力

string getUserScraps = "SELECT u.Id as       UserId,u.FirstName,,u.LastName,u.ImageName,s.FromId,s.ToId,s.Message,s.SendDate,s.ID as ScrapId FROM [User] as u, Scrap as s WHERE u.Id=s.FromId AND s.ToId='" +   Request.QueryString["Id"].ToString() + "'";

修正を追加すると、次の新しいエラーが作成されました。 ここに画像の説明を入力

4

1 に答える 1

0

これを行う最も簡単な方法は、データベースから実際のユーザー名を返すために使用できるパラメーターをprivate bool UserAuthenticateメソッドに取得させることだと思います。out

private bool UserAuthenticate(string UserName, string Password, out string actualUserName) 
{ 
    actualUserName = string.Empty;

    bool boolReturnValue = false; 
    //-------------------------------- 
    //Check UserID From Config File 
    if (UserName == "User" && Password == "Pass") 
    { 
        boolReturnValue = true; 
        return boolReturnValue; 
    }     
    else 
    { 
        //-------------------------------- 
        dt = new DataTable(); 
        string chkUser = "Select * FROM [User] where Email='" + UserName + "' AND Password='" + Password + "'"; 
        dt = dbClass.ConnectDataBaseReturnDT(chkUser); 
        if (dt.Rows.Count > 0) 
        { 
            //TODO: grab the actual user name from the row and assign it to actualUserName. For example:
            actualUserName = dt.Rows[0]["FullName"];

            boolReturnValue = true; 
            Session["UserId"] = dt.Rows[0]["Id"].ToString(); 
            string updateLastLogin = "Update [User] SET LastLogin='" + System.DateTime.Now.ToString() + "' where Id='" + Session["UserId"].ToString() + "'"; 
            dbClass.ConnectDataBaseToInsert(updateLastLogin); 
        } 
        return boolReturnValue; 
    } 
} 

その後、OnAuthenticateメソッドで次のようなことを行う必要があります。

string actualUserName;
Authenticated = UserAuthenticate(ctlLogin.UserName, ctlLogin.Password, out actualUserName);

そして、リダイレクトは次のようになります。

Response.Redirect("Home.aspx/" + actualUserName);
于 2012-10-13T01:37:31.210 に答える