ASP.NET中的数据库连接
其实也不能算是什么总结了,只是把今天学到的东西再回忆一遍,希望可以加深一下记忆。
最近因为接到一个项目,是一个实验室信息管理系统,基于WEB的,以前总是用ASP做,但是总觉得ASP不能很好的体现程序设计这一概念,而当我看到。NET之后,学得这是个好东西,况且时下也很流行,于是就拿来读了,学做网站,说到底最硬的功夫还是对数据库的操作,美工可以慢慢改,而对数据库的操作则是核心,SQL,存储过程,类,三层结构,这些东东,我原来在ASP时代就试着搞过,但是最后只是做了个DLL然后注册成为组件,用了一小下,很有成就感,可是申请的主机又怎么会给你随便注册组件呢,于是只能是空有一身本事,没处用啊,现在可好了,有了。NET,我可做很多程序设计该做的事,而不是想着怎么把<% ...%>语句插在哪!
既然数据库那么重要,我就先对它动手吧。自然想到ADO,还是很路子:
一:做Conection
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSetgins["ConnectionString"]);
二:做Command
SqlCommand myCommand = new SqlCommand("Select ....", conn);
好的,经过上面两步,可以说我们已经做好准备,往往这也是必须的,下面就要我们选择了,是以什么方式对数据库进行操作:有两条路:
1。使用DataReader逐行地从数据源获得数据放进缓冲区并进行处理。但是这个方法的坏处是只能顺序的往下读,不可以回到上一条。
方法:try{
SqlDataReader myDataReader = new SqlDataReader();
myDataReader = myCommand.ExecuteReader(); //返回SqlDataReader集
while(myDataReader.Read())
{
......//读出的语句
}
myDataReader.Close()
}
catch(...){....}
2。使用DataSet对象,把数据放到内存中进行处理。这一方法的好处是,可以在内存中建立与数据库中实表相对应的虚表,使得对数据的操作很方便灵活。
方法:
public DataSet CreateDataSource()
{
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("Select * from User_Info",conn);
DataSet ds=new DataSet();
SqlDataAdapter myAdapter = new SqlDataAdapter();
myAdapter.SelectCommand = myCommand;
myAdapter.Fill(ds,"UserInfo");
return ds;
}
四:得到数据集以后,大家就可以“八仙过海,各显神通”了,不过,我到是范了一个小小的错误,就是在如何引用数据表中某一项数据时,我把VB的语法和C#的语法混了,呵呵,比如:
在C#里,可以这样用ds.Tables["UserInfo"].Rows[0]["UserID"].ToString();
而在VB里,[ ]是用( )表示的,在C#里[]是属性而()是方法,所以这个细节希望大家以后别被它绊着.
关于数据库的操作自然是很多的,我先写到这吧,以后再加,正好,我们现在正在学数据库原理,希望以后可以有更深入的理解。