[英]Adding rows in data table in c#
我已經在應用程序啟動方法中創建了一個數據表,並且嘗試從會話啟動方法向該數據表添加行。 當我嘗試添加行時,它在數據表上給出了一個錯誤
該名稱在當前上下文中不存在。
我是編程的初學者。 任何幫助表示贊賞。
這是我的代碼:
// application begins
void Application_Start(Object s, EventArgs e)
{
DataTable 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;
}
// browser's first visit to the page, (session starts)
void Session_Start(Object s, EventArgs e)
{
{
Application.Lock();
DataRow dr = dt.NewRow();
dr["session_id"] = (System.String)HttpContext.Current.Session.SessionID; // session id
dr["ip_address"] = Request.ServerVariables["SERVER_NAME"]; //ip-address
dt.Rows.Add(dr);
dt = (Database)Application["visitorTable"];
Application["visitorTable"] = dt;
Application.UnLock();
}
}
創建新的DataTabe時,應指定表名。
DataTable dt = new DataTable("VisitorTable");
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;
// you create it like this
Application["visitorTable"] = dt;
// and you read it like this
dt = (Database)Application["VisitorTable"];
注意到問題了嗎?
同樣,您也不需要依賴反射來獲取類型的描述,簡單的編譯時間typeof(string)
和typeof(DateTime)
會解決這個問題。
當您執行以下代碼時
DataTable 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")));
您是否檢查過您的dt是否添加了指定的列名? 或dt是用Column1,colum2,column3列生成的,如果那些是用Column1,colum2,column3生成的,這就是為什么您會遇到上述錯誤,將列重命名為dt
檢查一下
動態創建DataTable並綁定到ASP.Net中的GridView
可能對你有幫助
DataTable dt; void Application_Start(Object s, EventArgs e) { 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; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.