我是写ASP出身的,习惯于用记事本写代码
在使用connection对象时,我喜欢采用最规范的方式:
dim conn as sqlconnection
dim cmd as sqlcommand
dim rs as sqldatareaderconn = New sqlConnection(Application("conn_orc"))
cmd = New sqlCommand(sqlstr, conn)
conn.Open()
rs = cmd.ExecuteReaderrs.close
conn.close这就是我说的第一种方式第二种,也是最简单的RAD方式,往页里一拖,再在程序里直接使用就可以了,自己写麻烦的声明语句第三种,是我看别人程序里写的,他将数据库连接写成了一个类,每次调用这个类的方法就可以了,具体如下
imports myconn Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
dim myconn as myconn
dim rs as sqldatareader
dim da as sqldatadapter
dim sqlstr as stringsqlstr="select * from a"
rs=myconn.getsqlreader(sqlstr)
da=myconn.getsqladapter(sqlstr)
.
.
.
.
rs.close
da.dispose
myconn.close
End Sub这是也就是第三种方式前面两种大同小异,在执行性能上可能会有所区别(也请帮忙讨论一下,哪种效率更高)第三种方式,更加的巧,不知道这种方法有没有什么漏洞或不足,想请教
在使用connection对象时,我喜欢采用最规范的方式:
dim conn as sqlconnection
dim cmd as sqlcommand
dim rs as sqldatareaderconn = New sqlConnection(Application("conn_orc"))
cmd = New sqlCommand(sqlstr, conn)
conn.Open()
rs = cmd.ExecuteReaderrs.close
conn.close这就是我说的第一种方式第二种,也是最简单的RAD方式,往页里一拖,再在程序里直接使用就可以了,自己写麻烦的声明语句第三种,是我看别人程序里写的,他将数据库连接写成了一个类,每次调用这个类的方法就可以了,具体如下
imports myconn Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
dim myconn as myconn
dim rs as sqldatareader
dim da as sqldatadapter
dim sqlstr as stringsqlstr="select * from a"
rs=myconn.getsqlreader(sqlstr)
da=myconn.getsqladapter(sqlstr)
.
.
.
.
rs.close
da.dispose
myconn.close
End Sub这是也就是第三种方式前面两种大同小异,在执行性能上可能会有所区别(也请帮忙讨论一下,哪种效率更高)第三种方式,更加的巧,不知道这种方法有没有什么漏洞或不足,想请教
using System.Configuration;namespace CnybNet.Utility
{
public class Config
{
public Config()
{
} public static string ConnectionString
{
get
{
return ConfigurationSettings.AppSettings["ConnectionString_Server"];
}
}
}
}
任何时候, 只要这样就能取到连接了:SqlConnection conn = new SqlConnection(Config.ConnectionString);
对ASP.NET ViewState的机制特别不满. 或者总是挖空心思迫害人家. 反倒把自己弄得很累. 如果在对付ViewState的同时多注意少连几次数据库也许更文明些.
12.不厌其烦的写访问数据库的过程
应该把这工作交给DataAccess Application Block. 你自己还要开关connection, 何苦呢.
比如,要获取一个 DataTable, 下列语句就够了:DataTable dt = SqlScope.ExecuteDataTable("select a, b, c from YourTable");
没错,我是将连接串存在APPLICATION里,可是那不是起点,懂吗?
真正的连接串还是在web.config文件中,只是在系统启动时,APPLICATION会自动把连接串存到APPLICATION变量中,这样有问题吗?
我写得太简单了,造成你的误解是我的不对我所说的第三种方式,和你所说的SqlScope难道不是一回事吗?
看下SQLHELPER里,把方法做成无状态的静态方法。
sqldatareader当使用一个时,是否显式找开或关闭CONNECTION无什么关系(当CONNECTION没打开时,会自动打完成后自动关闭)
当同时多个sqldatareader时,建议显式地找开和关闭一个CONNECTION,不用多次打开CONNECTION所造成的浪费。
当使用Connection时,最好使用using(){}。
方便和复用性高的东西,往往会带来性能上的影响,看项目的要求。
其实表层可以定义一个ICOMMAND的接口,然后到底层和类似于SQLHELPER的打交道来访问数据库,
当数据库的改变时,只需改下SQLHELPER就OK了。
你说的这些,已经被做为公理在用了,这种简单的优化,没有从开发的角度真正减少程序员的工作量
程序的工量,由设计确定的,
没有好的系统框加,没有好的业务模板类,相减少自己的工作量,不太可能。
顺便问下楼主,你能确保在整个程序中,同一条SQL语句不会出现两次,同一个功能的代码在不同模块中重写,其实很多情况工作量并不大,只是自己不知不觉时在做同一样事情。
ftp host:61.144.244.47 ftp user:aspx ftp pass:aspx
这是我为一个朋友录制给他看的,不用20分钟左右出一个表的增,删,改,查的业务功能(都通过建模然后手写代码完成的)基本编译过就就OK,调试基本不用,因为他们用的是同一样东西。