下面是我获取的数据库里面的数据,请问是不是每次都要连接数据库和实例化对象啊?
这样不是很麻烦么?
SqlConnection my = new SqlConnection("server=PC-200908111438;database=Northwind;pwd=ok;uid=sa");
my.Open();
SqlCommand me = new SqlCommand();
me.Connection = my;
me.CommandText = "SELECT * FROM Employees ORDER BY EmployeeId";
SqlDataReader mi = me.ExecuteReader();
label1.Text = mi.GetName(0);
label2.Text = mi.GetName(1);
label3.Text = mi.GetName(2);
label4.Text = mi.GetName(3);
label5.Text = mi.GetName(4);
while (mi.Read())
{
textBox1.Text = textBox1.Text + mi.GetValue(0).ToString() + "\r\n";
textBox2.Text = textBox2.Text + mi.GetValue(1).ToString() + "\r\n";
textBox3.Text = textBox3.Text + mi.GetValue(2).ToString() + "\r\n";
textBox4.Text = textBox4.Text + mi.GetValue(3).ToString() + "\r\n";
textBox5.Text = textBox5.Text + mi.GetValue(4).ToString() + "\r\n"; }
my.Close();
//8. 将2008-1-1前入学的学生名字显示在ListBox控件中
// (显示其名字和入学日期及所在班级) SqlConnection my1 = new SqlConnection("server=PC-200908111438;database=Northwind;pwd=ok;uid=sa");
my1.Open();
SqlCommand me1 = new SqlCommand();
me1.Connection = my1;
me1.CommandText = "SELECT top 5* FROM Employees ORDER BY EmployeeId";
SqlDataReader mi1 = me1.ExecuteReader();
while (mi1.Read())
{
textBox1.Text = textBox1.Text + "\r\n" + mi1.GetValue(0).ToString() + "\r\n";
textBox2.Text = textBox2.Text + "\r\n" + mi1.GetValue(1).ToString() + "\r\n";
textBox3.Text = textBox3.Text + "\r\n" + mi1.GetValue(2).ToString() + "\r\n";
textBox4.Text = textBox4.Text + "\r\n" + mi1.GetValue(3).ToString() + "\r\n";
textBox5.Text = textBox5.Text + "\r\n" + mi1.GetValue(4).ToString() + "\r\n"; }
my1.Close();
所以如果建议使用DateSet
比如这个地方要访问数据库,就new一个连接出来,完成后关闭.另一个地方也要访问数据库,就又要new一个出来,用完也关闭,很不好
最简单的是在一个类中声明一个全局性变量存放一个已经new好的连接,其他地方要用只管拿就行了,不用在多个函数里都去new了但是,随意程序的复杂和功能的扩展,发现其它类也要这样New连接来使用,总不能每个类都New一个同样的连接使用吧,那样重复代码太多了,很杂很烦琐,于是我们又设计一个专门的数据库访问类(一般是静态类),其它类要访问数据库,只要引用这个数据库访问类的函数就行了,我们不用到处New数据库连接了但是问题又来了,我现在使用的是Access数据库,过段时间要改成SqlServer,还有可能换成MySql,怎么办?
...
纯属疑惑 呵呵!
他就会 连接数据库并调用 sql 语句 然后返回 你需要的 reader 或者 datatable 这个你自己定义以后你可以再把 连接操作 和 具体逻辑 , 页面操作 再次分开到不同的地方。。
dataAdapter和dataSet