ASP.NET MVC5 之问题集(一):连接SQLSERVER2012的LocalDB
2016-03-06 21:56
639 查看
问题背景:在ASP.NET MVC5编程实战3代码实例-CH02中用SQL Server 2012MSSSMS(微软SQLSERVER管理工具)附加.mdf(Primary Data File)文件后又将其删除,导致数据库服务器及根目录下的App_Data下的.mdf和ldf文件(注册成功之后自动产生的)被删除,最后在注册逻辑中报Cannot attach the file {0} as database {1}
百度结果:
解决方法:
相关链接如下:
Entity Framework don’t create database
(http://forums.asp.net/t/1768918.aspx)
How can I install the Northwind database into SQL Server Local DB?
相关分析:
创建的MyApplicationDbContext类负责处理连接到数据库,并将ApplicationUser对象映射到数据库记录中。你可能会问一个问题,如何指定它到将要连接的数据库上呢? 实际上,确实没有指定使用的数据库,Entity Framework将预设值使用的LocalDB。 在本节中,我们将显式地在Web.config文件中添加应用程序的连接字符串(connection string)。
SQL Server Express LocalDB
LocalDB的是一个SQL Server Express轻量级版本的数据库引擎。 它在用户模式下启动、执行。LocalDB的运行在一个特殊的SQL Server Express的执行模式,所以允许您使用MDF文件数据库。通常情况下,LocalDB的数据库文件都保存在web项目的App_Data文件夹下面。
注意:在生产环境的Web应用程序中,我们不推荐您使用SQL Server Express。 尤其, LocalDB不应该被用于Web应用程序的生产环境,因为它设计之初不要求使用IIS。 然而,LocalDB的数据库能够很容易地迁移到SQL Server或SQL Azure中。
备注:在 Visual Studio 2013 (Visual Studio 2012), LocalDB 默认会被安装.
默认的,Entity Framework的看起来命名为为对象上下文类(如本项目MyApplicationDbContext)的相同的一个连接字符串。有关详细信息,请参见SQL Server Connection Strings for ASP.NET Web Applications。
打开应用程序根目录的Web.config文件。(不是View文件夹下的Web.config文件。)打开红色高亮标记的Web.config文件。
在Web.config文件中的内添加下面的连接字符串。
using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
}
3.sql server身份验证,连接sql server数据库:
取字连接符串方式:
1、
2、
(2)web.config文件:加在 appsettings 之间
配置方式:
取字连接符串方式:
appSettings 和 connectionStrings 的区别:
(1) appSettings 是在 2003 中常用的,connectionStrings 是在 2005 中常用的;
(2) 使用 connectionStrings 的好处:
第一,可将连接字符串加密,使用MS的一个加密工具即可;
第二,可直接绑定数据源控件,而不必写代码读出来再赋值给控件;
第三,可方便的更换数据库平台,如换为 Oracle 数据库,只需要修改 providerName。
二、直接在网页里引用,连接数据库:
1、string connString = “server=localhost;database=数据库名;user id=用户名;pwd=密码;”;
或者上行代码为:string connstring = “Data source=localhost;database=数据库名;user id=用户名;pwd=密码;”;
2、SqlConnection con = new SqlConnection(connstring);
3、con.Open();
百度结果:
解决方法:
相关链接如下:
Entity Framework don’t create database
(http://forums.asp.net/t/1768918.aspx)
How can I install the Northwind database into SQL Server Local DB?
相关分析:
public class MyApplicationDbContext : IdentityDbContext<ApplicationUser> { public MyApplicationDbContext() : base("MyDefaultConnection") { } }
创建的MyApplicationDbContext类负责处理连接到数据库,并将ApplicationUser对象映射到数据库记录中。你可能会问一个问题,如何指定它到将要连接的数据库上呢? 实际上,确实没有指定使用的数据库,Entity Framework将预设值使用的LocalDB。 在本节中,我们将显式地在Web.config文件中添加应用程序的连接字符串(connection string)。
SQL Server Express LocalDB
LocalDB的是一个SQL Server Express轻量级版本的数据库引擎。 它在用户模式下启动、执行。LocalDB的运行在一个特殊的SQL Server Express的执行模式,所以允许您使用MDF文件数据库。通常情况下,LocalDB的数据库文件都保存在web项目的App_Data文件夹下面。
注意:在生产环境的Web应用程序中,我们不推荐您使用SQL Server Express。 尤其, LocalDB不应该被用于Web应用程序的生产环境,因为它设计之初不要求使用IIS。 然而,LocalDB的数据库能够很容易地迁移到SQL Server或SQL Azure中。
备注:在 Visual Studio 2013 (Visual Studio 2012), LocalDB 默认会被安装.
默认的,Entity Framework的看起来命名为为对象上下文类(如本项目MyApplicationDbContext)的相同的一个连接字符串。有关详细信息,请参见SQL Server Connection Strings for ASP.NET Web Applications。
打开应用程序根目录的Web.config文件。(不是View文件夹下的Web.config文件。)打开红色高亮标记的Web.config文件。
在Web.config文件中的内添加下面的连接字符串。
` <connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MvcMovie-20130603030321.mdf;Initial Catalog=aspnet-MvcMovie-20130603030321;Integrated Security=True" providerName="System.Data.SqlClient" /> <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
这两个连接字符串非常相似。第一个连接字符串命名为DefaultConnection的,被用于控制可以访问应用程序的成员鉴权数据库。您已添加的连接字符串 (connection string) 显示位于App_Data文件夹中的 一个Movie.mdf文件,数据库命名为Movie.mdf。 在本教程中,我们将不使用会员数据库有关会员,认证和安全性的更多信息,请参阅教程: Deploy a Secure ASP.NET MVC app with Membership, OAuth, and SQL Database to a Windows Azure Web Site。 连接字符串(connection string)的名称必须匹配DbContext类的名称。
using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get; set; } }
}
实际上, 您并不需要新增MyDBContext连接字符串。 如果没有指定一个连接字符串,Entity Framework将会在用户目录中创建一个LocalDB数据库的DbContext类的(如本例中MvcMovie.Models.MovieDBContext)。您也数据库命名为任何你喜欢的东西,只要它具有.MDF的后缀。例如,我们可以命名数据库MyFilms.mdf。 ***关于VS2013连接SQL SERVER 2012的连接字符串的存取***: **一、web.config里面配置后连接数据库** *(1)web.config文件中加在connectionString之间* 三种配置方式: 1.windows身份验证,连接sql server数据库: <add name="字符串名称" connectionString="Data Source=localhost;database=数据库名称;Integrated Security=True;User Instance=False;" /> 2.windows身份验证,连接vs数据库: <add name="字符串名称" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\数据库名称.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
3.sql server身份验证,连接sql server数据库:
<add name="字符串名称" connectionString="server=.\SQLEXPRESS;database=数据库名称;uid=sa;pwd=liteng"/>
取字连接符串方式:
1、
protected static string connectionString = ConfigurationManager.ConnectionStrings["字符串名称"].ConnectionString;
2、
string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["字符串名称"].ConnectionString;
(2)web.config文件:加在 appsettings 之间
配置方式:
<appSettings> <add key="conn" value="server=服务器名;database=数据库名;uid=用户名;password=密码;"/> </appSettings>
取字连接符串方式:
string connectionString =configurationsettings.appsettings["字符串名称"];
appSettings 和 connectionStrings 的区别:
(1) appSettings 是在 2003 中常用的,connectionStrings 是在 2005 中常用的;
(2) 使用 connectionStrings 的好处:
第一,可将连接字符串加密,使用MS的一个加密工具即可;
第二,可直接绑定数据源控件,而不必写代码读出来再赋值给控件;
第三,可方便的更换数据库平台,如换为 Oracle 数据库,只需要修改 providerName。
二、直接在网页里引用,连接数据库:
1、string connString = “server=localhost;database=数据库名;user id=用户名;pwd=密码;”;
或者上行代码为:string connstring = “Data source=localhost;database=数据库名;user id=用户名;pwd=密码;”;
2、SqlConnection con = new SqlConnection(connstring);
3、con.Open();
相关文章推荐
- ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面
- ASP.NET 配置KindEditor文本编辑器
- 在树莓派2代B型/3代 上安装Fedora23 - Installing Fedora 23 on Raspberry Pi 2 model B or Raspberry Pi 3
- asp.net 通过web.config 文件设置网站的mime类型
- 树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像
- 在大于32GB或64GB容量的SD卡上使用NOOB安装树莓派 - Using NOOB on SD cards larger than 32GB or 64GB for Raspberry Pi
- 树莓派 raspberry 入门之安装操作系统以及配置
- Metasploit 学习记录
- asp.net mvc4使用百度ueditor编辑器
- 重置树莓派的密码
- 7天 搞定 ASP.NET MVC - 第6天
- Web API 基于ASP.NET Identity的Basic Authentication
- Ubuntu run in Raspberry pi 2 之SD 卡镜像篇(ROS开发准备)
- Asp.Net页面传值的几种方式
- Spring集成AspectJ的注解模式
- asp链接access2010数据库
- CuteEditor.Editor for asp.net is licensed
- ASP.NET三层划分与命名方式
- asp.net设置元素css的属性
- <ASP.NET4 从入门到精通>学习笔记3