dataGrid 插入一行数据 我就想通过 按button 不停的往DataGrid2 插数据 ,DataGrid2 中要显示我插入的所有数据,而不是 只插一次的数据。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 did you save the DataTable in a Session variable or retrieve all the data from your database? DataRow myRow = New DataRow ? 点击一次按钮后,一条记录加进了DataTable,跟datagrid帮定后显示出多了一条记录,但是你在点击了另一个按钮后,再次加记录时的哪个DataTable是不是前一次已经加过一条记录的那个DataTable了呢?如果你每次加了记录后没有保存到数据库,或者是把DataTable保存在Session中的话,下次就没法再次取回上次已经增加记录的那个DataTable的内容了 我是在查询的时候 用户先查询出一部分记录 ,然后插入 DataGrid2中, 用户再查询出一部分记录 , 插入DataGrid2中 , 最后把DataGrid2(几次查询的结果 ) 中的记录保存到数据库中。 DataGrid只是用来显示数据源的数据,绑定数据源后就忠实的反映数据源的数据,所以你在Datatable中增加的数据,要保存这个DataTable到数据库或者保存在Session中.否则上次添加的记录会丢失的 chnking(kent)请问怎么样将DataTable保存在Session中?能否给出例子啊? 保存:DataTable myDataTable = myDataSet.Tables[0];Session["myTable"] = DataTable ;取回:DataTable myDataTable = (DataTable)Session["myTable"]; 还是一样 ,前次添加的记录丢失private void Page_Load(object sender, System.EventArgs e){ // 在此处放置用户代码以初始化页面 df.Setconnect_string(); df.Open_Data();//打开这个连结是为了更新数据用的 dataset=df.Open_Data_Set("tax_fs_temp","SELECT top 0 qybm,qymc,dh FROM tax_fs_temp"); DataGrid2.AllowPaging=true; DataGrid2.DataSource=dataset.Tables[0].DefaultView; Session["myTable"] = dataset.Tables[0] ; if(!this.Page.IsPostBack) { DataGrid2.CurrentPageIndex=0; DataGrid2.DataBind(); }}private void Button1_Click(object sender, System.EventArgs e){ DataRow myRow; myRow=((DataTable)Session["myTable"]). NewRow(); //用相应值填写数据行 myRow["qybm"]="qybm1"; myRow["qymc"]="qymc1"; myRow["dh"]="dh1"; //填写完毕,将数据行添加到数据集 dataset.Tables[0].Rows.Add(myRow); dataset.Tables[0].AcceptChanges(); DataGrid2.DataBind(); Session["myTable"] = dataset.Tables[0] ; }private void Button4_Click(object sender, System.EventArgs e){ DataRow myRow; myRow=((DataTable)Session["myTable"]). NewRow(); //用相应值填写数据行 myRow["qybm"]="qybm"; myRow["qymc"]="qymc"; myRow["dh"]="dh"; //填写完毕,将数据行添加到数据集 dataset.Tables[0].Rows.Add(myRow); dataset.Tables[0].AcceptChanges(); DataGrid2.DataBind(); Session["myTable"] = dataset.Tables[0] ;} DataGrid2.DataBind();我不是帮了吗? /*********事件二***********/DataRow myRow;myRow=dataset.Tables["tax_fs_temp"].NewRow();//用相应值填写数据行myRow["qybm"]="qybm1";myRow["qymc"]="qymc1";myRow["dh"]="dh1";//填写完毕,将数据行添加到数据集dataset.Tables["tax_fs_temp"].Rows.Add(myRow); DataGrid2.DataBind();//--------------------------------if(dataset.hasChanged()){ dataset.Updata()...... //好像是这样,没有编译环境,无法测试} 应该再dataset中数据改变以后,存入数据库中。。再..... 我就是不想查询一次就存入数据库中,而想最后存入。我在调试的过程中 发现 我做事件一 Session["myTable"] = dataset.Tables[0] ; //这句后 Session["myTable"] 中是有 我新加的row ,但是当我再去做事件二时myRow=((DataTable)Session["myTable"]). NewRow(); //这句时 Session["myTable"] 中没有我在事件一中保存的row ,好像 Session 没有起保存 DataTable 的作用(没有row) ?? to hmzz(zz) 那怎么绑??? 我觉得可以这样先定义一个全局static DataTable dt,然后在事件处理程序中往dt中加入New Row,而用dt来绑定数据。不过可别忘了private void Page_Load(object sender, System.EventArgs e){ .... if(!this.Page.IsPostBack) { ... 初始化 dt ; ... } ....} 关于在vs2008中打开一个从网上下载的网站的方法 vs 2008 安装问题 修改记录错误 Button单击事件 如何使用Cookie javascript中md5加密与C#中md5加密结果不一致. 如何返回当前程序的合名空间的值呀? 如何获取Web.config里面的<httpRuntime maxRequestLength="8000"/>的值? 急:我只有那么多分了拜托! 我global.asax里定义的变量,但在aspx里却找不到,怎么回事? Timer web.config里面的Forms身份验证的问题?
如果你每次加了记录后没有保存到数据库,或者是把DataTable保存在Session中的话,下次就没法再次取回上次已经增加记录的那个DataTable的内容了
用户先查询出一部分记录 ,然后插入 DataGrid2中,
用户再查询出一部分记录 , 插入DataGrid2中 ,
最后把DataGrid2(几次查询的结果 ) 中的记录保存到数据库中。
请问怎么样将DataTable保存在Session中?能否给出例子啊?
DataTable myDataTable = myDataSet.Tables[0];
Session["myTable"] = DataTable ;取回:
DataTable myDataTable = (DataTable)Session["myTable"];
{
// 在此处放置用户代码以初始化页面
df.Setconnect_string();
df.Open_Data();//打开这个连结是为了更新数据用的 dataset=df.Open_Data_Set("tax_fs_temp","SELECT top 0 qybm,qymc,dh FROM tax_fs_temp"); DataGrid2.AllowPaging=true;
DataGrid2.DataSource=dataset.Tables[0].DefaultView;
Session["myTable"] = dataset.Tables[0] ; if(!this.Page.IsPostBack)
{
DataGrid2.CurrentPageIndex=0;
DataGrid2.DataBind();
}
}private void Button1_Click(object sender, System.EventArgs e)
{
DataRow myRow;
myRow=((DataTable)Session["myTable"]). NewRow();
//用相应值填写数据行 myRow["qybm"]="qybm1";
myRow["qymc"]="qymc1";
myRow["dh"]="dh1";
//填写完毕,将数据行添加到数据集
dataset.Tables[0].Rows.Add(myRow);
dataset.Tables[0].AcceptChanges(); DataGrid2.DataBind(); Session["myTable"] = dataset.Tables[0] ;
}
private void Button4_Click(object sender, System.EventArgs e)
{ DataRow myRow;
myRow=((DataTable)Session["myTable"]). NewRow();
//用相应值填写数据行 myRow["qybm"]="qybm";
myRow["qymc"]="qymc";
myRow["dh"]="dh";
//填写完毕,将数据行添加到数据集
dataset.Tables[0].Rows.Add(myRow);
dataset.Tables[0].AcceptChanges(); DataGrid2.DataBind(); Session["myTable"] = dataset.Tables[0] ;
}
DataRow myRow;myRow=dataset.Tables["tax_fs_temp"].NewRow();
//用相应值填写数据行myRow["qybm"]="qybm1";
myRow["qymc"]="qymc1";
myRow["dh"]="dh1";
//填写完毕,将数据行添加到数据集
dataset.Tables["tax_fs_temp"].Rows.Add(myRow); DataGrid2.DataBind();
//--------------------------------
if(dataset.hasChanged())
{
dataset.Updata()......
//好像是这样,没有编译环境,无法测试
}
但是当我再去做事件二时
myRow=((DataTable)Session["myTable"]). NewRow(); //这句时 Session["myTable"] 中没有我在事件一中保存的row ,好像 Session 没有起保存 DataTable 的作用(没有row) ??
然后在事件处理程序中往dt中加入New Row,而用dt来绑定数据。不过可别忘了private void Page_Load(object sender, System.EventArgs e)
{
....
if(!this.Page.IsPostBack)
{
...
初始化 dt ;
...
}
....
}