ADO.NET 对象众多,我们将其分成两大类,第一类是直接与数据库相关的对象,以 Sql 或 OleDb 开头,第二类是与 DataSet 相关的,诸如数据表、数据视图等。
本文属 .NET Framework 1.0 范畴,2.0 中兼容。
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
PrintRslt();
}
void PrintRslt()
{
string sql = "select * from tbl";
SqlConnection conn = new SqlConnection("server=(local);User ID=foo;Password=foo;Initial Catalog=foo");
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
string str = "";
while (dr.Read())
{
str += dr.GetString(0)
+ "~" + dr.GetString(1)
+ "~" + dr.GetString(2)
+ "~" + dr.GetSqlMoney(3).ToString()
+ "~" + dr.GetString(4)
+ "~" + dr.GetDateTime(5).ToString("yyyy-M-d") + "<br />";
}
dr.Close();
dr.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();
rsltPanel.InnerHtml = str;
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>DataReader 应用示例</title>
</head>
<body>
<div id="rsltPanel" runat="server"></div>
</body>
</html>
可以看出,获取字段值根据字段类型调用 DataReader 的不同方法,参数值表示字段索引。