用DataReader对数据进行绑定呵呵,用他来读取数据库的最简单方式,它只能读取,不能写入,并且是从头至尾往下读的它占用内存小,速度快,在数据量较少的情况下,DataSet和DataReader 的优劣并没有非常明显的优劣,然而,当数据流量达到一定量(200条左右),这和您的计算机的硬件配置有关,DataReader 的优势就很明朗了.
代码如下:
string constr =**************
string sql = string.Format("Select * from News where NewId={0}",5);
OleDbConnection con=new OleDbConnection(constr);
con.Open();
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataReader dtr=cmd.ExecuteReader();
dtr.Read();
this.Label1.Text = dtr["NewTitle"].ToString();
this.Label2.Text = dtr.GetValue(3).ToString();
this.Label3.Text = dtr.GetValue(4).ToString();
dtr.Dispose();
con.Close();
刚开没有写dtr.Read();结果报错说 :不存在此行/列的数据。后来加上了, 因为dtr中有一条记录,所以读出来了。
呵呵粗心害死人啊!
同样的登陆这块也是:
OleDbDataReader rd = cmd.ExecuteReader(); //执行SQL语句,返回记录(一般用户名和密码相同的只有一个),所以rd中只存在一条记录
rd.Read(); //返回true,因为rd中有一条记录,所以读出来了。
Label1.Text = rd.GetValue(0).ToString();
if (rd.Read() == true) //唯一的一条记录已经被读出来了,现在rd.read()将返回false
Label1.Text = "登陆成功"; //这里永远不会登陆成功,除非有另外一个用户的用户名和密码完全一样