高分求助c#连数据库小程序

要求:用.net c#语言编写,能够实现增删改数据内容,和简单的查询...会做的大侠加我qq:16818547 备注:百度知道 做好了可以追加分数

第1个回答  2008-06-16
下面给出两段典型的数据库连接的例子。在此之前,请在程序头部using处添加using System.Data.SqlClient或System.Data.OleDb,以保证数据库访问时用到的命名空间能引用

SQL Server数据访问
string strConn="Integrated Security=SSPI;Initial Catalog=MyDatabase;Data Source=YY-POWERPC ";
SqlConnection myConnection = new SqlConnection (strConn);
myConnection.Open();

OleDb数据访问
String strConn="Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=SSPI";
OleDbConnection myConnection=new OleDbConnection (strConn);
myConnection.Open();

上述步骤执行后,如果没有异常抛出,便可成功完成与数据库的连接。在完成了与数据库的连接后,接下来就是建立一个DataAdapter对象,来完成可访问数据库的工作。DataAdapter的工作是后面DataSet的基础,其内容就是建立一个DataSet与数据库的中间层,来协调访问。由于DataAdapter与DataSet的关系十分紧密,我就结合在一起介绍了。DataAdapter也分为SqlDataAdapter和 OleDbDataAdatper两种。下面给出一段典型代码(OleDbDataAdapter的情况可类推):

SqlDataAdapter myDataAdapter = new SqlDataAdapter ();
DataSet myDataSet = new DataSet ();
string strCom = "SELECT * FROM 会员信息表";
myDataAdapter.SelectCommand = new SqlCommand (strCom,myConnection);
SqlCommandBuilder myCB = new SqlCommandBuilder (myDataAdapter);
myDataAdapter.Fill (myDataSet,"会员信息表");

这段代码用到了SqlDataAdapter、DataSet、SqlCommand、SqlCommandBuilder四个对象。从上图中可以看出,SqlDataAdapter的作用就是负责与数据库的通讯访问,同时与DataSet相连,它的内部有四个很重要的Command对象(同样分为SqlCommand和OleDbCommand),都是访问数据库必用的,分别为SelectCommand、InsertCommand、 UpdateCommand、DeleteCommand对象。这些Command对象便是专门用来完成对数据库的查询、插入、更新、删除操作,它们就像四个大臣,在DataAdapter的控制下分别主管各自的事情。其中SelectCommand是它们四个中的老大,由它可以自动的构造生成另外的三个。构造生成的过程就是应用CommandBuilder。在这之前,我们只需要指定DataAdapter中的SelectCommand对象,就可以了。

在设置好了SQL Select语句后,就可以开始填充相应的数据集了。方法是应用DataAdapter的Fill方法,参数为DataSet及其中的某个 DataTable。这里要着重讲一讲DataSet对象。如果你用过ADO中的Recordset对象,你可能会感觉到DataSet和 Recordset的差别。Recordset一般只能应用于单表,即一个Recordset对应于一张表。而DataSet中有一个 DataTableCollection,即一个DataTable集合,可以包含多个DataTable对象。DataTable对象看上去就更加像一张表了,其中有DataRowCollection、DataColumnCollection、ConstraintCollection。它们分别代表DataRow(数据行)、DataColumn(数据列)、Constraint(约束关系)的对象集合。可能说这么多,你已经有点儿迷糊了,先看一句代码吧。

myDataSet.Tables["MyTable"].Rows[3]["MyName"] = "杨扬";

怎么样?是不是一下子就明白了许多。这是一句多么完美的OO思想表达出的语句啊!这句就是将DataSet下的一个名为MyTable的"虚表 "中的第4行的MyName字段的内容改为"杨扬"。为什么叫"虚表"呢?这是因为ADO.NET的一个特点就是脱机连接数据库。这样可以减少网络通讯的压力,提高效率。你可能会问DataColumn在哪呢?Rows[3]就表示了第4行记录,换句话说Rows[3]就是一个DataRow对象,一加上 ["MyName"]就自动定位到了MyName字段的内容。ADO.NET规定,访问表中内容必须是先行后列的原则,Column["MyName"] [3]是不允许的。当然,DataColumn也是什么重要的,比如想查看某列的列头(Field),可以用Column[1].ColumnName更改。