-----------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
3、System.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的大括号之后,会自动调用conn的Dispose()方法,且保证了对异常的处理。
在ADO.Net中,对于实现了IDisposable接口的类的对象,都要释放它们的内存。
5、Dispose()方法:
对于Dispose()方法,方法内部会自动实现close()方法。
close()方法和Dispose()方法的区别:调用完close()方法之后,还可调用open()方法重新连接;而使用Dispose()方法之后,便销毁了conn,使它不能重新连接。
使用这种方法的问题在于:
conn.Open();
//...........一些处理代码
conn.Dispose();
如果在那些处理代码中发生异常,那么Dispose()方法便不会被执行,那么数据库的链接就没有被释放,以后再连接就有可能连接不上了(连接次数过多)。
6、ado技术和程序:
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方法是用来执行insert、delete、update语句的,由于这些语句执行后只有一个结果:“影响了**行”,所以ExecuteNonQuery方法返回的是影响的行数(int)。
cmd.ExecuteNonQuery();执行cmd的CommandText属性中设置的SQL语句(也可以是存储过程名),返回影响的行数
-----------Windows Phone 7手机开发、.Net培训、.net学习型技术博客、期待与您交流! ------------