关于c#数据库的连接问题?

来源:百度知道 编辑:UC知道 时间:2024/07/06 17:30:26
private void FrmAdd_Load(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from type";//在type表中只有id,state,typeName。目的是将表中的state和typeName取出来。
cmd.Connection = DBTool.cn;//连接为cn

DBTool.cn.Open();//打开连接
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
comboBox1.Items.Add(dr.GetString(1)+"-"+dr.GetString(2));//获取指定列上字符串型式的值,items是一个列表
}
dr.Close();
cmd.Dispose();
DBTool.cn.Close();
}

这段代码中的“SqlDataReader dr = cmd.ExecuteReader();”是什么意思啊?解释的最好通俗易懂,最像能打个比喻。。
还有看看我上面的解释对吗,不对的给我改下。。谢谢!

SqlDataReader dr = cmd.ExecuteReader();
ExecuteReader是SqlCommand类的一个方法,功能是返回一个可以读取的查询结果集合(即SqlDataReader类的对象).
这个语句的意义是首先声明一个SqlDataReader类的对象dr,然后调用cmd的ExecuteReader方法,并把返回的这个结果集合赋值给dr这个对象.然后你就可以通过调用dr的各种方法来读取查询到的数据了.
代码和注释基本没问题,不过建议你在打开数据连接的地方加上异常处理代码,现在的程序容错性不是很好.

datareader通过字面意思read是读的意思
那么这个方法就是读取你指定的数据库里面的某条数据
他是需要用sqlcommand给调用出来
所以要写成:sqldatareader 自定义变量名 = sqlcommand的自定义名.executereader()
而且要说明的是
dataread的read方法只能读取数据..

SqlDataReader dr = cmd.ExecuteReader();//用command对象cmd的ExecuteReader方法生成一个SqlDataReader对象dr
然后就可以用dr的Read方法读数据了