黑马程序员--ADO.NET小结(上)

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

程序要和数据库交互要通过ADO.NET进行,通过ADO.NET就能在程序中执行SQL了。ADO.NET中提供了对各种数据库的同意操作接口。

直接在项目中内嵌mdf文件的方式使用SQL Server数据库(基于服务的数据库)。mdf文件随着项目走,用起来方便。和在数据库服务器上创建数据库没有什么区别,运行的时候会自动附加。

双击mdf文件会在“服务器资源管理器”中打开,管理方式和在Manangement Studio没有本质不同。要拷贝mdf文件需要关闭所有指向mdf文件的连接。

正式产生运行的时候附加到SQL Server上,修改连接字符串即可,除此之外没有任何的区别,在“数据库”节点上点击右键“附加”;在数据库节点上->任务->分离就可以得到可以考来考取的mdf文件。

//连接SQLServer
连接字符串:程序通过连接字符串指定要连接到哪台服务器上的、连哪个实例的那个数据库、用什么用户名密码等。

项目内嵌mdf文件形式的连接字符串"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True;"
".\SQLEXPRESS" 表示 本机上的SQLEXPRESS实例,如果数据库实例名不是SQLEXPRESS,则需要修改。
"Database1.mdf"为mdf的文件名

非内嵌的mdf文件形式的连接字符串"Data Source=MRLIU-PC;Initial Catalog=StudentDB;Integrated Security=True"
连接数据库语句:"Data Source=.;Initial Catalog=数据库名;Integrated Security=True"

ADO.NET中通过SqlConnection类创建到SQLServer的连接,SqlConnection代表一个数据库连接,ADO.NET中的连接等资源都实现了IDisposable接口,可以使用using进行资源管理。

//执行简单的Insert语句
SqlCommand表示向服务器提交的一个命令(SQL语句等),CommandText属性为要执行的SQL语句,ExecuteNonQuery方法执行一个非查询语句(Update,Insert,Delete等)

//SqlCommand的三大对象:
ExecuteNonQuery 表示受影响的行数。

//执行查询
ExecuteReader 执行有多行结果集时用
reader的GetString、GetInt32等方法只接受整数参数,也就是序号,用GetOrdinal方法根据列名动态得到序号。

ExecuteScalar 返回第一行、第一列的数据。因为不能确定返回值的类型,所以返回值类型为Object类型

//对于SQL中的关键字,例如:User 如果表名设置成了User,应该写成[User]否则会报错。
得到自动增长字段的主键值,在values关键词前加上 output inserted.ID,其中ID为逐渐字段名。执行结果就是插入的主键值,用ExecuteScalar执行最方便。
insert into T_Users(UserName,Pwd) 
output inserted.ID 
values('admin1','1234')

//Colse和Dispose
Colse:关闭以后还能打开。
Dispose:直接销毁。不能再次使用。
Using在出了作用域以后调用Dispose,SqlConnection、FileStream等的Dispose等的Dispose内部都会做这样的判断:有没有close,如果没有Close就先Close再Dispose
 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值