有一个很奇怪的问题:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then
Dim tbname As String = Session("dtname") <--数据表名称-->
Dim conn As SqlConnection
conn = New SqlConnection("server=localhost;database=cjglxt;uid=sa;pwd=lwqyll1353")
Dim sqldap As SqlDataAdapter
sqldap = New SqlDataAdapter("select * from " & tbname & " where 1=0", conn)
Session("ada") = sqldap
sqldap.Fill(ds, "dtchengji") <--把数据库中的表结构填充到ds里面,没有数据-->
Session("ds") = ds
Session("mydata") = ds.Tables("dtchengji") <--把ds里面的数据表赋值给session变量保存起来-->
End If
end sub下面我给session("mydata")添加数据 Private Sub Btnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnext.Click
dtchengji = CType(Session("mydata"), DataTable)
rows = dtchengji.NewRow
rows.Item("banji") = ddlnianji.SelectedItem.Value.ToString & "." & ddlbanji.SelectedItem.Value.ToString
rows.Item("xuehao") = Txuehao.Text
rows.Item("xingming") = Txingming.Text
rows.Item("chengji") = CDec(Tchengji.Text)
dtchengji.Rows.Add(rows)
Session("mydata") = dtchengji
Txuehao.Text = CStr(CLng(Txuehao.Text) + 1)
End Sub然后把 session("ds")里面的数据表填充给datagrid(不是把session("mydata")填充给datagrid)。
但显示的数据却跟session("mydata")里面的数据一摸一样。
Private Sub btpreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btpreview.Click
Dg1.Visible = True
Dg1.DataSource = CType(Session("ds"), DataSet).Tables("dtchengji")
Dg1.DataBind()
End Sub我又没有往session("ds")里面添加数据,怎么最后显示却有数据呢?难道在page_load事件里面
Session("ds") = ds
Session("mydata") = ds.Tables("dtchengji")
Session("mydata")跟Session("ds"),就已经建立起双向连接。更改任何一方会影响另外一方?
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then
Dim tbname As String = Session("dtname") <--数据表名称-->
Dim conn As SqlConnection
conn = New SqlConnection("server=localhost;database=cjglxt;uid=sa;pwd=lwqyll1353")
Dim sqldap As SqlDataAdapter
sqldap = New SqlDataAdapter("select * from " & tbname & " where 1=0", conn)
Session("ada") = sqldap
sqldap.Fill(ds, "dtchengji") <--把数据库中的表结构填充到ds里面,没有数据-->
Session("ds") = ds
Session("mydata") = ds.Tables("dtchengji") <--把ds里面的数据表赋值给session变量保存起来-->
End If
end sub下面我给session("mydata")添加数据 Private Sub Btnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnext.Click
dtchengji = CType(Session("mydata"), DataTable)
rows = dtchengji.NewRow
rows.Item("banji") = ddlnianji.SelectedItem.Value.ToString & "." & ddlbanji.SelectedItem.Value.ToString
rows.Item("xuehao") = Txuehao.Text
rows.Item("xingming") = Txingming.Text
rows.Item("chengji") = CDec(Tchengji.Text)
dtchengji.Rows.Add(rows)
Session("mydata") = dtchengji
Txuehao.Text = CStr(CLng(Txuehao.Text) + 1)
End Sub然后把 session("ds")里面的数据表填充给datagrid(不是把session("mydata")填充给datagrid)。
但显示的数据却跟session("mydata")里面的数据一摸一样。
Private Sub btpreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btpreview.Click
Dg1.Visible = True
Dg1.DataSource = CType(Session("ds"), DataSet).Tables("dtchengji")
Dg1.DataBind()
End Sub我又没有往session("ds")里面添加数据,怎么最后显示却有数据呢?难道在page_load事件里面
Session("ds") = ds
Session("mydata") = ds.Tables("dtchengji")
Session("mydata")跟Session("ds"),就已经建立起双向连接。更改任何一方会影响另外一方?
Session("ds") = ds 'here session("ds")是ds的引用,上句已经给ds填充了表dtchengji
Session("mydata") = ds.Tables("dtchengji") 'here Session("mydata")是表的引用
Dg1.DataSource = CType(Session("ds"), DataSet).Tables("dtchengji") 'pageload中Session("ds")已被填充了数据,且被保存起来