c#与SQL数据库连接的两种方式的区别

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:22:01
利用c#制作window窗体时,实现跟数据库SQL的连接,有两种方法如下,想知道一下这两种方法的区别和相对的优缺点:
(两种方法分别举出代码如下)
方法一:
tring add = "insert into 特快列车查询(车次,站次,站名,发车时间,到站时间,硬座价格,软座价格) values('" + textBox3.Text + "','" + textBox4.Text + "','" + textBox1.Text + "','" + textBox6.Text + "','" + textBox7.Text + "'," + textBox8.Text + "," + textBox9.Text + ")";
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
cn.Open();
SqlCommand cmd = new SqlCommand(add, cn);
cmd.ExecuteNonQuery();
cn.Close();
方法二:
private void ExecuteSql(string a)
{
SqlDataAdapter da = new SqlDataAdapter(a, ConfigurationManager.ConnectionStrings["connstring"].ConnectionString);
ds.Clear();

数据处理最消耗时间的数据库连接。
从性能的角度看:
创建SqlConnection是建立数据库连接,如果多次创建即会非常消耗时间。它使用后必须用Close()释放,否即会一直占用宝贵的带宽资源。如果过多地占用带宽资源别的电脑就连不上那个数据库了。
创建SqlDataAdapter同样也是会有创建数据库连接的操作,但是它优化了这个连接的过程(牺牲更多的内存换取更快的速度),创建一次后可以多次使用而不会一直占用宝贵的带宽资源。

从使用的角度来看:
SqlConnection + SqlCommand是可以做比较高级的数据处理,比如读取单个数据,执行存储过程,和一些比较复杂的SQL语句等。
SqlDataAdapter只能从数据取得一个表,或用程序一个表更新数据库的另一个表,是对数据库执行比较简单的操作。

从使用的复杂来看:
一般用SqlConnection + SqlCommand会比用SqlDataAdapter要写更多的代码,所以SqlDataAdapter是数据库连接的首选方法。

这两种方法都是对连接的数据库进行数据库的访问的方法。
使用command对象访问数据库,一般和DataReader一起用,这种方式的优点是不占用额外的内存,读取的速度比较快,但是所需编写的程序代码比较长。
使用DataSet访问数据库,这种方式的优点是所需编写的代码程序少,但是需要占用额外的内存,并且读取数据的速度比前一种相对来说慢。
至于需要采用什么样的方式,就要看程序员所要开发系统的特点了.

你这个有什么可比性啊
一个是插入数据,一个是查询数据然后再控件上绑定
要比就比SqlDataAdapter和 SqlDataReader

SqlDataAdapter性能肯定比SqlDataReader要差很多

方法一:使用起来牺牲的是连接数据库性能
方法二:牺牲的是内存

各有优劣,如果频繁访问数据库可以用方法二

如果很多人使用,可以考虑方法一

方法一其实是方法二执行的细节请况