Redian新闻
>
.net操作数据库的方法,哪个最好?
avatar
.net操作数据库的方法,哪个最好?# DotNet - 窗口里的风景
t*9
1
1,强类型DATASET
2,存储过程
3,LINQ
这三种方种有什么优缺点呢?
avatar
c*e
2
只用过后2种。stored procedure很方便,能根据用户的选择来筛选数据。
linq也不错,也能写join之类复杂的query.

【在 t********9 的大作中提到】
: 1,强类型DATASET
: 2,存储过程
: 3,LINQ
: 这三种方种有什么优缺点呢?

avatar
t*9
3
一)DATASet:恭喜你不用写T-SQL了,但是你要学会它的语法,从此不用担心多数据库
应用的问题。但是惨了,它为了兼容多种数据库因此T-SQL写的真的“很兼容”执行效
率太低,同样的一个表现结果,这个SQL嵌套了好几次,效率灰常低。
二)LINQ:你也不用写T-SQL了,它的语法学学还是好处颇多,因因为你在LINQ TO
OBJECT上也能见到这种语法的影子收益颇多,它的执行效率很快,但是不管怎么讲也没
有你直接用SQL Server .NET Framework数据提供程序,自己写SQL快,可控制程度高,
好处也是显而易见就像用DATASET一样,你不用再为了数据持久化问题写一大堆ORM的东
西了。
三)存储过程:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般
SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可
将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
5.减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可
能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条
一条的调用SQL语句要高得多。
6.执行速度更快。有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了
一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这
样下次再执行同样的存储过程时,可以从内存中直接调用。
7.更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库
开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会
对应用程序造成影响。
8.布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
avatar
H*g
4
一般的数据库操作,LINQ的效率和SP的完全一样。如果碰到海量的INSERT/UPDATE的话
,还是SP快。另外,LINQ可以直接调用SP。DATATABLE现在没人用了吧。
avatar
c*e
5
用datatable来画图,传值什么的还不错。就是dataset和datatable的转换比较麻烦,c
#没有现成的method.

【在 H*******g 的大作中提到】
: 一般的数据库操作,LINQ的效率和SP的完全一样。如果碰到海量的INSERT/UPDATE的话
: ,还是SP快。另外,LINQ可以直接调用SP。DATATABLE现在没人用了吧。

avatar
a9
6
难道不是datatable属于dataset吗?

,c
的话

【在 c*********e 的大作中提到】
: 用datatable来画图,传值什么的还不错。就是dataset和datatable的转换比较麻烦,c
: #没有现成的method.

avatar
S*y
7
没有最好,只有最合适
IMO, dataset is heavily coupled
avatar
t*9
8
1,强类型DATASET
2,存储过程
3,LINQ
这三种方种有什么优缺点呢?
avatar
c*e
9
只用过后2种。stored procedure很方便,能根据用户的选择来筛选数据。
linq也不错,也能写join之类复杂的query.

【在 t********9 的大作中提到】
: 1,强类型DATASET
: 2,存储过程
: 3,LINQ
: 这三种方种有什么优缺点呢?

avatar
t*9
10
一)DATASet:恭喜你不用写T-SQL了,但是你要学会它的语法,从此不用担心多数据库
应用的问题。但是惨了,它为了兼容多种数据库因此T-SQL写的真的“很兼容”执行效
率太低,同样的一个表现结果,这个SQL嵌套了好几次,效率灰常低。
二)LINQ:你也不用写T-SQL了,它的语法学学还是好处颇多,因因为你在LINQ TO
OBJECT上也能见到这种语法的影子收益颇多,它的执行效率很快,但是不管怎么讲也没
有你直接用SQL Server .NET Framework数据提供程序,自己写SQL快,可控制程度高,
好处也是显而易见就像用DATASET一样,你不用再为了数据持久化问题写一大堆ORM的东
西了。
三)存储过程:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般
SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可
将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
5.减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可
能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条
一条的调用SQL语句要高得多。
6.执行速度更快。有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了
一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这
样下次再执行同样的存储过程时,可以从内存中直接调用。
7.更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库
开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会
对应用程序造成影响。
8.布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
avatar
H*g
11
一般的数据库操作,LINQ的效率和SP的完全一样。如果碰到海量的INSERT/UPDATE的话
,还是SP快。另外,LINQ可以直接调用SP。DATATABLE现在没人用了吧。
avatar
c*e
12
用datatable来画图,传值什么的还不错。就是dataset和datatable的转换比较麻烦,c
#没有现成的method.

【在 H*******g 的大作中提到】
: 一般的数据库操作,LINQ的效率和SP的完全一样。如果碰到海量的INSERT/UPDATE的话
: ,还是SP快。另外,LINQ可以直接调用SP。DATATABLE现在没人用了吧。

avatar
a9
13
难道不是datatable属于dataset吗?

,c
的话

【在 c*********e 的大作中提到】
: 用datatable来画图,传值什么的还不错。就是dataset和datatable的转换比较麻烦,c
: #没有现成的method.

avatar
S*y
14
没有最好,只有最合适
IMO, dataset is heavily coupled
avatar
w*7
15
有这方面的参考书吗?还是只能看msdn?
avatar
W*n
16
stored proc作为数据库接口,前端用Linq包起来,可以做些简单的query.
avatar
d*m
17
1 is outdated for long time, replaced by EF(entity framework), you can use
ling & store procedure on top of it.
Another way of accessing db in .net use ado.net or (DAAB)Data Access
Application Block in EnterpriseLibrary, which heavily relies on store
procedures

【在 t********9 的大作中提到】
: 1,强类型DATASET
: 2,存储过程
: 3,LINQ
: 这三种方种有什么优缺点呢?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。