Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net中将datatable存储到viewstate中_Asp.net_Datatable_Ado.net_Viewstate - Fatal编程技术网

在asp.net中将datatable存储到viewstate中

在asp.net中将datatable存储到viewstate中,asp.net,datatable,ado.net,viewstate,Asp.net,Datatable,Ado.net,Viewstate,我创建了一个DataTable _dt并添加了如下列 _dt.Columns.Add("INDATE", typeof(string)); _dt.Columns.Add("INTIME", typeof(string)); _dt.Columns.Add("OUTTIME", typeof(string)); _dt.Columns.Add("OUTDATE", typeof(string)); 我将_dt存储到Viewstate中: 然后我在数据表中添加了一行,如下所示: DataRow

我创建了一个DataTable _dt并添加了如下列

_dt.Columns.Add("INDATE", typeof(string));
_dt.Columns.Add("INTIME", typeof(string));
_dt.Columns.Add("OUTTIME", typeof(string));
_dt.Columns.Add("OUTDATE", typeof(string));
我将_dt存储到Viewstate中:

然后我在数据表中添加了一行,如下所示:

DataRow _dr = _dt.NewRow();
_dr[0] = string.Format("{0:dd/MM/yyyy}", System.DateTime.Now);
_dr[3] = string.Format("{0:dd/MM/yyyy}", System.DateTime.Now);
_dt.Rows.Add(_dr);
并将DataTable成功绑定到gridview

我的问题是:每当我从Viewstate检索DataTable时

该表还包含DataRow


我不想要数据行。。我只需要具有列字段的表。

存储在ViewState中的DataTable对象实例与添加行时使用的对象实例相同。所以,无论你用它做什么,都会在下次取回它时看到

您可以对存储在ViewState中的原始数据表使用,并将行添加到此克隆。这样,您将有两个不同的对象,向第二个对象添加行不会影响第一个对象

ViewState["_table"] = _dt;
DataTable temp = _dt.Clone();
DataRow _dr = temp.NewRow();
_dr[0] = string.Format("{0:dd/MM/yyyy}", System.DateTime.Now);
_dr[3] = string.Format("{0:dd/MM/yyyy}", System.DateTime.Now);
temp.Rows.Add(_dr);

....

DataTable temp = (ViewState["_table"] as DataTable).Clone();
....    

请使用适当的按钮{}格式化代码行
DataTable _dtTemp = (DataTable)ViewState["_table"];
ViewState["_table"] = _dt;
DataTable temp = _dt.Clone();
DataRow _dr = temp.NewRow();
_dr[0] = string.Format("{0:dd/MM/yyyy}", System.DateTime.Now);
_dr[3] = string.Format("{0:dd/MM/yyyy}", System.DateTime.Now);
temp.Rows.Add(_dr);

....

DataTable temp = (ViewState["_table"] as DataTable).Clone();
....