|
xxx
Using SQLReader to Read Data
by Charles Carroll
Here is code to read data from
SQL7/2000 database with data-reader.
filename=/experiments/datareader/datareader.aspx
<%@ trace="false"%>
<%@ import namespace = "system.data.sqlclient" %>
<%@ Import Namespace="System.Configuration.ConfigurationSettings" %>
<script language="VB" runat="server">
Sub Page_Load(Src As Object, E As EventArgs)
errormsg.text=""
If ispostback=true THEN
' Page is nth interaction
ELSE
' Page is first timer
END IF
dim strSQL as string="select pubid,name,city,state,zip from publishers where state='NY'"
dim strConn as string=AppSettings("LearnaspSamples")
dim conn as new SQLconnection(strConn)
dim cmd as new sqlcommand(strSQL,Conn)
' Create a DataReader
DIM reader1 as SQLdatareader
Conn.Open()
reader1=cmd.executereader()
' Variables to Gather Data
dim field0, field1 as string
dim fieldcity, fieldstate, fieldzip as string
dim sb as new stringbuilder
DIM fieldCityPos as integer=reader1.getordinal("city")
DIM fieldStatePos as integer=reader1.getordinal("state")
DIM fieldZipPos as integer=reader1.getordinal("zip")
TRY
'trace.write ("reader", "reader1.read()" & reader1.read())
If NOT reader1.read() THEN
output.text="No Records found!"
exit sub
END IF
DO
' grab the fields
TRY
field0=reader1.getvalue(0)
field1=reader1.getvalue(1)
fieldcity=reader1.getvalue(fieldCityPos)
fieldstate=reader1.getvalue(fieldStatePos)
fieldzip=reader1.getvalue(fieldZipPos)
CATCH theExc as exception
errormsg.text=errormsg.text & "<br>Error with Reader!<br>" & strSQL & "<br>" & theExc.tostring() & "<br>"
FINALLY
' nothing to do
END TRY
' Output data to brower
with sb
.append ("field0=")
.append (field0)
.append ("<br>")
.append ("field1=")
.append (field1)
.append ("<br>")
sb.append ("city=")
sb.append (fieldcity)
sb.append ("<br>")
sb.append ("<hr>")
end with
LOOP WHILE reader1.Read()
CATCH ex as exception
errormsg.text=errormsg.text & "<br>Error with Reader!<br>" & strSQL & "<br>" & ex.tostring() & "<br>"
CATCH sqlex as SqlException
errormsg.text=errormsg.text & "<br>Error with Reader!<br>" & strSQL & "<br>" & sqlex.tostring() & "<br>"
FINALLY
reader1.close()
conn.close()
END TRY
output.text=sb.tostring()
end sub
</script>
<html><head>
<title><asp:literal id="titlequery" runat="server" /></title>
</head>
<body bgcolor="#FFFFFF">
<asp:literal id="errormsg" runat="server" /><br>
<form runat="server">
<asp:literal id="output" runat="server" />
</form>
</body><html>
Here is simpler but slower code to read data from
SQL7/2000 database with data-reader using .item method
filename=/experiments/datareader/datareaderitem.aspx
<%@ import namespace = "system.data.sqlclient" %>
<%@ Import Namespace="System.Configuration.ConfigurationSettings" %>
<script language="VB" runat="server">
Sub Page_Load(Src As Object, E As EventArgs)
errormsg.text=""
If ispostback=true THEN
' Page is nth interaction
ELSE
' Page is first timer
END IF
dim strSQL as string="select pubid,name,city,state,zip from publishers where state='NY'"
dim strConn as string=AppSettings("LearnaspSamples")
dim conn as new SQLconnection(strConn)
dim cmd as new sqlcommand(strSQL,Conn)
' Create a DataReader
DIM reader1 as SQLdatareader
Conn.Open()
reader1=cmd.executereader()
' Variables to Gather Data
dim field0, field1 as string
dim fieldcity, fieldstate, fieldzip as string
dim sb as new stringbuilder
TRY
If NOT reader1.read() THEN
output.text="No Records found!"
exit sub
END IF
DO
' grab the fields
TRY
field0=reader1.item(0)
field1=reader1.item(1)
fieldcity=reader1.item("city")
fieldstate=reader1.item("state")
fieldzip=reader1.item("zip")
CATCH theExc as exception
errormsg.text=errormsg.text & "<br>Error with Reader!<br>" & strSQL & "<br>" & theExc.tostring() & "<br>"
FINALLY
' nothing to do
END TRY
' Output data to brower
with sb
.append ("field0=")
.append (field0)
.append ("<br>")
.append ("field1=")
.append (field1)
.append ("<br>")
sb.append ("city=")
sb.append (fieldcity)
sb.append ("<br>")
sb.append ("<hr>")
end with
LOOP WHILE reader1.Read()
CATCH ex as exception
errormsg.text=errormsg.text & "<br>Error with Reader!<br>" & strSQL & "<br>" & ex.tostring() & "<br>"
CATCH sqlex as SqlException
errormsg.text=errormsg.text & "<br>Error with Reader!<br>" & strSQL & "<br>" & sqlex.tostring() & "<br>"
FINALLY
reader1.close()
conn.close()
END TRY
output.text=sb.tostring()
end sub
</script>
<html><head>
<title><asp:literal id="titlequery" runat="server" /></title>
</head>
<body bgcolor="#FFFFFF">
<asp:literal id="errormsg" runat="server" /><br>
<form runat="server">
<asp:literal id="output" runat="server" />
</form>
</body><html>
|