在gusetbook.asp页面
<ItemTemplate>
<!--将"../Document/News.aspx"改成你的窗体-->
<a href='<%# "Read.aspx?ID="+DataBinder.Eval(Container.DataItem,"gId") %>' Target="_Blank">
<%# DataBinder.Eval(Container.DataItem,"gTitle") %>
</a>
</ItemTemplate>
在read.aspx页面 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Page.IsPostBack = True Then
Dim sId As String
sId = Convert.ToInt32(Request.Params("gId").ToString())
DispNews(sId) End If
End Sub
Function DispNews(ByVal sId As String)
Dim sCmd As String
Dim cn As SqlConnection
cn = New SqlConnection
cn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings("dsn")
cn.Open()
Dim sqlCmd As SqlCommand
sCmd = "select * from GuestBookTab where gid=@sId"
Dim myReader As SqlDataReader
sqlCmd = New SqlCommand(sCmd, cn)
myReader = sqlCmd.ExecuteReader
Dim myGid As String
myGid = Convert.ToString(myReader.Item("gId"))
Dim myGtitle As String
myGtitle = Convert.ToString(myReader.Item("gTitle"))
Dim myGtime As DateTime
myGtime = Convert.ToDateTime(myReader.Item("gTime"))
Dim myGdemo As String
myGdemo = Convert.ToString(myReader.Item("gDemo"))
Dim myUserId As String
myUserId = Convert.ToString(myReader.Item("UserId"))
Dim myGviewNumber As Integer
myGviewNumber = Convert.ToString(myReader.Item("gViewNumber"))
myGviewNumber = myGviewNumber + 1
lblId.Text = myGid
lblTitle.Text = myGtitle
lblUserId.Text = myUserId
lblTime.Text = myGtime
lblViewNumber.Text = myGviewNumber
lbldemo.Text = myGdemo End Function
------------------------------------------------------------------------------------------
问题是:可以读取到传递过来的sid,但是无法通过函数读取数据,请问高手问题出在那里?
<ItemTemplate>
<!--将"../Document/News.aspx"改成你的窗体-->
<a href='<%# "Read.aspx?ID="+DataBinder.Eval(Container.DataItem,"gId") %>' Target="_Blank">
<%# DataBinder.Eval(Container.DataItem,"gTitle") %>
</a>
</ItemTemplate>
在read.aspx页面 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Page.IsPostBack = True Then
Dim sId As String
sId = Convert.ToInt32(Request.Params("gId").ToString())
DispNews(sId) End If
End Sub
Function DispNews(ByVal sId As String)
Dim sCmd As String
Dim cn As SqlConnection
cn = New SqlConnection
cn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings("dsn")
cn.Open()
Dim sqlCmd As SqlCommand
sCmd = "select * from GuestBookTab where gid=@sId"
Dim myReader As SqlDataReader
sqlCmd = New SqlCommand(sCmd, cn)
myReader = sqlCmd.ExecuteReader
Dim myGid As String
myGid = Convert.ToString(myReader.Item("gId"))
Dim myGtitle As String
myGtitle = Convert.ToString(myReader.Item("gTitle"))
Dim myGtime As DateTime
myGtime = Convert.ToDateTime(myReader.Item("gTime"))
Dim myGdemo As String
myGdemo = Convert.ToString(myReader.Item("gDemo"))
Dim myUserId As String
myUserId = Convert.ToString(myReader.Item("UserId"))
Dim myGviewNumber As Integer
myGviewNumber = Convert.ToString(myReader.Item("gViewNumber"))
myGviewNumber = myGviewNumber + 1
lblId.Text = myGid
lblTitle.Text = myGtitle
lblUserId.Text = myUserId
lblTime.Text = myGtime
lblViewNumber.Text = myGviewNumber
lbldemo.Text = myGdemo End Function
------------------------------------------------------------------------------------------
问题是:可以读取到传递过来的sid,但是无法通过函数读取数据,请问高手问题出在那里?
myReader.Reader()
当然了,最后也别忘了
myReader.Close()
sCmd = "select * from GuestBookTab where gid=" & sId
Dim myReader As SqlDataReader
sqlCmd = New SqlCommand(sCmd, cn)
myReader = sqlCmd.ExecuteReader
Dim myGid As String
myGid = Convert.ToString(myReader.Item("gId"))
--->>>
myReader = sqlCmd.ExecuteReader myReader.Reader()
二、SqlDataReader的话必须先用Read()方法读取数据,否则记录指针还在第一条记录之前,是无法读取数据的。