---------------------- 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培训、期待与您交流! ----------------------