黑马程序员--学习笔记之ADO.Net基础知识
2012-06-24 16:00
761 查看
---------------------- Windows Phones 7手机开发、.Net培训、期待与您交流! ----------------------
主要是摘自教程的PPT(官方的话才有权威)
ADO.Net中提供了对各种不同数据库的统一操作接口
程序要和数据库交互时,要通过ADO.Net进行操作,使用ADO.Net就能在程序中执行SQL
直接在项目中内嵌mdf文件的方式使用SQLServer数据库(基于服务的数据库),mdf文件随着项目走,使用起来方便多,
和在数据库服务器上创建数据库没什么区别,运行的时候会自动附加
双击mdf文件会在“服务器资源管理器”中打开,管理方式和在Management Studio没有什么本质不同,
另外要注意的是:当你拷贝mdf文件需要关闭所有指向mdf文件的连接
正式生成运行的时候,附加到SQLServer上,修改连接字符串即可,除此之外没有任何的区别,在“数据库”节点上点
右键“附加”;在数据库节点上-->任务-->分离,就可以得到可以拷贝的mdf文件了
杨老师常说的“神奇代码”:
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if(dataDir.EndsWith(@"\bin\Debug")||dataDir.EndsWith(@"\bin\Release"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory",dataDir);
}
这里摘自杨老师的原理分析
原理简单分析:连接字符串中的DataDirectory的值就是通过AppDomain.CurrentDomain.SetData赋值过去的,如果 当前程序的目录以"\bin\Debug\"或者"\bin\Release\"则认为它是运行在VisualStudio环境中,就取项目的目录然后赋 值给DataDirectory这个key。既然是CurrentDomain.SetData,估计对于非默认AppDomain中的数据库连接代码可 能会不起作用(只是猜测,没验证),这就要需要创建子AppDomain的时候再去赋值了。
连接SQLServer
连接字符串:程序通过连接字符串,指定要连哪台服务器上的,哪个实例的哪个数据库,用什么用户名密码等
项目内嵌mdf文件形式的连接字符串“DataSource=.\SQLEXPRESS:AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;User Instance=True”
其中,.\SQLEXPRESS表示“本机上的SQLEXPRESS实例”,如果数据库实例名不是SQLEXPRESS,则需要修改,Database1.mdf
为mdf的文件名
ADO.Net中通过SqlConnection类创建到SQlServer的连接,SqlConnection代表一个数据库连接,ADO.Net中的连接等资源都实现了IDisposableu接口,可以使用using进行资源管理,
常见问题:--(摘自网络)
由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
在使用ASP.NET 2.0 + SQL2005 + aspnetdb(MemberShip等功能)时出现这个问题:“由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。”,其英文版本的相同问题的错误信息是:“Failed to generate a user instance of SQL Server due to a failure in starting the
process for the user instance. The connection will be closed.”
解决办法:删除C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS目录即可,[USERNAME]是Windows用户名,比如说Administrator
---------------------- Windows Phones 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看http://net.itheima.com/
主要是摘自教程的PPT(官方的话才有权威)
ADO.Net中提供了对各种不同数据库的统一操作接口
程序要和数据库交互时,要通过ADO.Net进行操作,使用ADO.Net就能在程序中执行SQL
直接在项目中内嵌mdf文件的方式使用SQLServer数据库(基于服务的数据库),mdf文件随着项目走,使用起来方便多,
和在数据库服务器上创建数据库没什么区别,运行的时候会自动附加
双击mdf文件会在“服务器资源管理器”中打开,管理方式和在Management Studio没有什么本质不同,
另外要注意的是:当你拷贝mdf文件需要关闭所有指向mdf文件的连接
正式生成运行的时候,附加到SQLServer上,修改连接字符串即可,除此之外没有任何的区别,在“数据库”节点上点
右键“附加”;在数据库节点上-->任务-->分离,就可以得到可以拷贝的mdf文件了
杨老师常说的“神奇代码”:
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if(dataDir.EndsWith(@"\bin\Debug")||dataDir.EndsWith(@"\bin\Release"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory",dataDir);
}
这里摘自杨老师的原理分析
原理简单分析:连接字符串中的DataDirectory的值就是通过AppDomain.CurrentDomain.SetData赋值过去的,如果 当前程序的目录以"\bin\Debug\"或者"\bin\Release\"则认为它是运行在VisualStudio环境中,就取项目的目录然后赋 值给DataDirectory这个key。既然是CurrentDomain.SetData,估计对于非默认AppDomain中的数据库连接代码可 能会不起作用(只是猜测,没验证),这就要需要创建子AppDomain的时候再去赋值了。
连接SQLServer
连接字符串:程序通过连接字符串,指定要连哪台服务器上的,哪个实例的哪个数据库,用什么用户名密码等
项目内嵌mdf文件形式的连接字符串“DataSource=.\SQLEXPRESS:AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;User Instance=True”
其中,.\SQLEXPRESS表示“本机上的SQLEXPRESS实例”,如果数据库实例名不是SQLEXPRESS,则需要修改,Database1.mdf
为mdf的文件名
ADO.Net中通过SqlConnection类创建到SQlServer的连接,SqlConnection代表一个数据库连接,ADO.Net中的连接等资源都实现了IDisposableu接口,可以使用using进行资源管理,
常见问题:--(摘自网络)
由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
在使用ASP.NET 2.0 + SQL2005 + aspnetdb(MemberShip等功能)时出现这个问题:“由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。”,其英文版本的相同问题的错误信息是:“Failed to generate a user instance of SQL Server due to a failure in starting the
process for the user instance. The connection will be closed.”
解决办法:删除C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS目录即可,[USERNAME]是Windows用户名,比如说Administrator
---------------------- Windows Phones 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看http://net.itheima.com/
相关文章推荐
- 黑马程序员之 ASP.NET学习笔记:ADO.NET基础知识总结
- 黑马程序员之ADO.NET基础学习笔记(一)
- 黑马程序员-- ADO.NET基础学习笔记
- 黑马程序员之ADO.NET学习笔记:登陆练习。
- 黑马程序员之ADO.NET学习笔记:SqlParameter(Sql参数)
- 黑马程序员_c#基础知识学习笔记:习题ReadInt及冒泡排序
- 黑马程序员之C#学习笔记:ADO.NET入门级材料
- 黑马程序员之ADO.NET学习笔记:不用第三个变量,实现两数交换
- 黑马程序员 java学习笔记-基础知识盘点
- 黑马程序员之ADO.NET学习笔记:ADO.NET数据导入导出
- 黑马程序员_c#基础知识学习笔记:方法重载和out,ref传参
- 黑马程序员之ADO.NET学习笔记:IP地址归属地查询。查询结果:北京移动[海淀]。
- 黑马程序员之ADO.NET学习笔记:SqlDataReader(数据流读取器)
- 黑马程序员_ADO.NET学习知识总结
- 黑马程序员之ADO.NET学习笔记:执行select语句
- 黑马程序员——ADO.net基础知识
- 黑马程序员--ASP.NET基础学习笔记
- 黑马程序员之ADO.NET学习笔记:省市选择程序,数据全部来自于数据库。
- 黑马程序员之ADO.NET学习笔记:ADO.NET介绍
- 黑马程序员之ADO.NET学习笔记:using和close