繁体   English   中英

从其他文件向数据表添加行

[英]Adding rows in data table from a different file

我在global.asax文件中创建了一个包含四列的数据表。 我仅将行添加到global.asax文件中的数据表的两列中。 我试图从同一项目下的不同.aspx.cs文件中添加其他两行。 当我尝试添加行时,它给我一个错误

“名称“ dr”在当前上下文中不存在”。

我的代码:

login.aspx.cs:

protected void btnLogin_Click(object sender, EventArgs e)
{
    if(txtPassword.Text == "")
    {            
        Server.Transfer("Main.aspx", true);            
    }

    if(txtUserName.Text!= "" && txtPassword.Text!= "")
    {
        Server.Transfer("Userlog.aspx", true);
    }


    dr["username"] = Session["UserName"]; // username
    dr["login_time"] = Session["LoginTime"]; //login time
}

global.asax:

void Session_Start(Object s, EventArgs e)
{

    Application.Lock();

    dt = new DataTable();
    dt.Columns.Add(new DataColumn("session_id", System.Type.GetType("System.String")));
    dt.Columns.Add(new DataColumn("username",   System.Type.GetType("System.String")));
    dt.Columns.Add(new DataColumn("login_time", System.Type.GetType("System.DateTime")));
    dt.Columns.Add(new DataColumn("ip_address", System.Type.GetType("System.String")));

    Application["visitorTable"] = dt;

    DataRow dr = dt.NewRow();

    dr["session_id"] = (System.String)Session.SessionID; // session id
    dr["ip_address"] = Request.ServerVariables["SERVER_NAME"]; //ip-address

    dt.Rows.Add(dr);

    //dt = (DataTable)Application["visitorTable"];

    Application["visitorTable"] = dt;

    DataView view = new DataView(dt);
    Application.UnLock();

}

由于dr变量不存在,它将通过。 如果要在会话对象中使用数据表行,则将数据表行与某些关键字一起存储,然后进行检索。

Session["RowDataTable"] = dr;

然后登录页面

var dr = Session["RowDataTable"] as DataRow;

嗯,真的不知道从哪里开始:

首先,您定义的变量dt和dr仅在Session_Start(){}方法的范围内可用。 这意味着,在方法调用之后,两个变量都不再可用。

次要的,如果您还需要在该方法之外访问数据,则应将其存储在私有变量中:

private DataTable _myDataTable;

或在公共场所从当前课程之外访问它:

public DataTable MyDataTable { get; set }

您还应该告知您有关static修饰符的信息:

https://msdn.microsoft.com/de-de/library/98f28cdx.aspx

希望对您有所帮助。

在当前情况下您想要的是, Mahesh Malpani的答案可能会带您进入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM