黑马程序员_ADO.Net 数据库访问技术

-----------Windows Phone 7手机开发.Net培训.net学习型技术博客、期待与您交流! ------------


1程序要和数据库交互要通过ADO.Net进行,通过ADO.Net技术就能在程序中执行SQL语句了。ADO.Net中提供了对各种不同数据库的统一操作接口。

2、ADO.net中数据库连接方式(微软提供)

微软提供供了以下四种数据库连接方式:

System.Data.OleDb.OleDbConnection

System.Data.SqlClient.SqlConnection

System.Data.Odbc.OdbcConnection

System.Data.OracleClient.OracleConnection

 

3System.Data.SqlClient.SqlConnection

常用的一些连接字符(C#代码)

a)       SqlConnection conn

       = new SqlConnection(

       "Server=(local);Integrated Security=SSPI;database=Pubs");

 

b)       SqlConnection conn

       = new SqlConnection(

"server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI");

 

c)       SqlConnection conn = new SqlConnection(

"Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");

 

d)       SqlConnection conn = new SqlConnection(

" data source=(local);initial catalog=xr;integrated security=SSPI;

persist security info=False;workstation id=XURUI;packet size=4096; ");

 

e)       SqlConnection myConn = new

       System.Data.SqlClient.SqlConnection(

       "Persist Security Info=False;Integrated

       Security=SSPI;database=northwind;server=mySQLServer");

 

f)        SqlConnection conn = new SqlConnection(

       " uid=sa;pwd=passwords;initial catalog=pubs;

       data source=127.0.0.1;Connect Timeout=900");

 

4 using(SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))

{

   Conn.open();

   Using(sqlcommond cmd=conn.createcommand())

   {

cmd.commandText=”Insert into mytable1(name) values(‘abc’) ”;

          cmd.executeNonquery();

          Console.writeLine(“数据插入成功”);

}

}
图片

使用using的话,在出了using的大括号之后,会自动调用connDispose()方法,且保证了对异常的处理。

ADO.Net中,对于实现了IDisposable接口的类的对象,都要释放它们的内存。

5Dispose()方法:

对于Dispose()方法,方法内部会自动实现close()方法。

close()方法和Dispose()方法的区别:调用完close()方法之后,还可调用open()方法重新连接;而使用Dispose()方法之后,便销毁了conn,使它不能重新连接。

使用这种方法的问题在于:

conn.Open();

//...........一些处理代码

conn.Dispose();

如果在那些处理代码中发生异常,那么Dispose()方法便不会被执行,那么数据库的链接就没有被释放,以后再连接就有可能连接不上了(连接次数过多)。

 

6ado技术和程序:

sqlconnection con=new sqlconnection("");//连接数据库

string sql="";//sql语句

sqlcommand com=new sqlcommand(sql,con);//定义sqlcommand对象

sqldatareader dr=com.executeReader();//定义sqldatareader对象

if(dr.Read())//判断是否有记录,有就执行,没有就执行else里面的(一般用于登录验证)

{

}

else

{

}

      解析:

*        SqlCommand对象用于只与SQL Server建立连接后执行特定的语句,比如INSERT,DELETE,UPDATE等等这样的命令.从而接受这些命令的结果去判断操作是不是成功;

*        SqlConnection是封装 SQL Server数据库连接的

*        SqlDataReader提供一种从 SQL Server数据库读取行的只进流的方式。此类不能被继承

*        SqlDataAdapter Sql的适配器对象,当建立一个与SQL Server的连接后取出一系列数据,要与ADBO.NET里面的DataSet对象进行关联,这样就可以断开连接,实现"离线数据库".

*        ExecuteNonQuery方法是用来执行insertdeleteupdate语句的,由于这些语句执行后只有一个结果:影响了**,所以ExecuteNonQuery方法返回的是影响的行数(int)。

*        cmd.ExecuteNonQuery();执行cmdCommandText属性中设置的SQL语句(也可以是存储过程名),返回影响的行数

 

-----------Windows Phone 7手机开发.Net培训.net学习型技术博客、期待与您交流! ------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值