演示OracleDataAdapter填充数据集
string connStr = "Data Source=ora11; uid=scott; pwd=1;unicode=true;";
string sqlStr = @"SELECT empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
FROM EMP WHERE SAL>=:sal";
OracleConnection conn = new OracleConnection(connStr);
OracleCommand cmd = new OracleCommand(sqlStr, conn);
OracleDataAdapter da = null;
cmd.Parameters.Add("sal", OracleType.Number);
//cmd.Parameters.Add(":sal", OracleType.Number);
cmd.Parameters["sal"].Value = 1000;
try
{
da = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
Response.Write(dr[0].ToString() + ", " + dr[1].ToString());
}
}
catch
{
Response.Write("失败.");
}
finally
{
da.Dispose();
conn.Close();
conn.Dispose();
cmd.Dispose();
}
说明
(1) Oraclecommand.ExecuteReader 方法返回的数据集是只读、只向前,对 OracleDataReader 的数据集是不能进行处理的;
(2) 因此,可以用更灵活的 DataTable 或 DataSet,在获得数据集后,可以对数据集进行处理,比如过滤 DataTabe.Select()。
(3) 为了尽可能地减少对数据库的访问次数,提供性能,在实际项目中,通常是一次性从数据库获得所有所需的数据,再在客户端进行处理。