C#-Database-连接


using System.Data;
using System.Data.SqlClient;
//先打开两个类库文件
SqlConnection con = new SqlConnection();

con.ConnectionString = "server=.;database=stu;uid=sa;pwd=sa";

 

连接字符串,也可以

con.ConnectionString = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;

 

配合在web.config中配置实现

<ConnectionStrings>

<add name="xxx"

connectionString="Data Source=000.000.000.000;Initial Catalog=xxx;User ID=xxx;Password=xxx; pooling=true;"
providerName="System.Data.SqlClient"/>

<ConnectionStrings>

然后打开连接

con.Open();

接下来根据操作不同SqlDataAdapter和SqlCommand二选其一

ado.net数据访问有两种方式:

1.离线--通过DataSet,然后离线增,删,改,最后通过SqlDataAdapter解 析到数据库中

DataSet是离线的,而SqlDataAdapter是连接DataSet和数据库的桥梁,所有对DataSet的操作(填充,更新等)都要通过他。

即SqlDataAdapter+DataSet访问数据库

2.直接对数据库操作SqlCommand (Update,Insert,Delete)

二者之间的详细区分如下:

 

SqlCommand是命令,可以用它来执行SQL命令

SqlDataAdapter是数据适配器,是用于在数据源(数据库)和数据集(DataSet)之间通讯的一组对象

SqlCommand对应DateReader

SqlDataAdapter对应DataSet

SqlCommand是C#中与Sql数据库打交道的对象,几乎所有的Sql数据库操作都需要使用该对象来实现,但其功能有限,只是简单的实现了与Sql数据库的接口而已;

SqlDataAdapter是一个功能强大的SqL数据适配器,也用于操作Sql数据库,但它的操作都要通过SqlCommand来实现(有一个属性对象的类型就是SqlCommand),也就是说,可以把SqlDataAdapter看作是一个把一些特殊功能封装了、增强了的SqlCommand

SqlCommand与ADO时代的Command一样,SqlDataAdapter则是ADO.NET中的新事物,它配合DataSet来使用。

DataSet就像是驻留在内存中的小数据库,在DataSet中可以有多张DataTable,这些DataTable之间可以相互关联,就像在数据库中表关联一样

SqlDataAdapter的作用就是将数据从数据库中提取出来,放在DataSet中,当DataSet中的数据发生变化时,SqlDataAdapter再将数据库中的数据更新,以保证数据库中的数据和DataSet中的数据是一致的

如果只需要执行SQL语句,就没必要用到DataAdapter ,直接用SqlCommand的Execute系列方法就可以了。

sqlDataadapter的作用是实现Dataset和DataBase之间的桥梁:比如将对DataSet的修改更新到数据库。 SqlDataAdapter的UpdateCommand的执行机制是:
当调用SqlDataAdapter.Update()时,检查DataSet中的所有行,然后对每一个修改过的Row执行SqlDataAdapter.UpdateCommand
也就是说如果未修改DataSet中的数据,SqlDataAdapter.UpdateCommand不会执行。

 

例如使用SqlDataAdapter 对象,一般就要用于填充DataSet:

 con.Open();
 DataSet ds = new DataSet();
 try
        {
            SqlCommand cmd = new SqlCommand(sql, Connection);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(ds);
        }
        catch (Exception e)
        {

        }
        finally
        {
            con.Close();
        }

例如SqlDataReader 对象, 用于执行对数据库的直接一次性操作

using (SqlConnection con = new SqlConnection(s))
using (SqlCommand command = new SqlCommand("select * from xxx", con))
        {
            con.Open();
            command.Parameters.Add("@u", SqlDbType.Char).Value = uuu;
            SqlDataReader reader = command.ExecuteReader();
            while(reader.Read())
            {
              Console.WriteLine(reader["字段名"].toString());
              .......            
            }
        }        

最后关闭连接

con.Close();

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM