2013-08-21 248 views
5

我在我的App_Data文件夹中的数据库文件和我的web配置看起来像这样数据库因版本706而无法打开。此服务器支持版本655及更低版本。不支持降级路径

<?xml version="1.0"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <connectionStrings> 
    <add name="TicketsConnectionString" 
     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Tickets.mdf;Integrated Security=SSPI;User Instance=True;" 
    providerName="System.Data.SqlClient" /> 

    </connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5"/> 
    <httpRuntime targetFramework="4.5"/> 
    </system.web> 
</configuration> 

我Default.aspx页

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

     <asp:TextBox ID="LastName" runat="server"></asp:TextBox> 
     <asp:TextBox ID="FirstName" runat="server"></asp:TextBox> 
     <asp:TextBox ID="Phone1" runat="server"></asp:TextBox> 
     <asp:TextBox ID="Phone2" runat="server"></asp:TextBox> 
     <br /> 
     <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 
     <br /> 
     <br /> 
     <asp:Label ID="DisplayMessage" runat="server" style="color: #FF0000" Visible="false" /> 
     <br /> 
     <br /> 
     <br /> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TicketsConnectionString %>" SelectCommand="SELECT * FROM [Employee]" DeleteCommand="DELETE FROM [Employee] WHERE [EmpID] = @EmpID" InsertCommand="INSERT INTO [Employee] ([LastName], [FirstName], [Phone1], [Phone2]) VALUES (@LastName, @FirstName, @Phone1, @Phone2)" UpdateCommand="UPDATE [Employee] SET [LastName] = @LastName, [FirstName] = @FirstName, [Phone1] = @Phone1, [Phone2] = @Phone2 WHERE [EmpID] = @EmpID"> 
      <DeleteParameters> 
       <asp:Parameter Name="EmpID" Type="Int32" /> 
      </DeleteParameters> 
      <InsertParameters> 
       <asp:Parameter Name="LastName" Type="String" /> 
       <asp:Parameter Name="FirstName" Type="String" /> 
       <asp:Parameter Name="Phone1" Type="String" /> 
       <asp:Parameter Name="Phone2" Type="String" /> 
      </InsertParameters> 
      <UpdateParameters> 
       <asp:Parameter Name="LastName" Type="String" /> 
       <asp:Parameter Name="FirstName" Type="String" /> 
       <asp:Parameter Name="Phone1" Type="String" /> 
       <asp:Parameter Name="Phone2" Type="String" /> 
       <asp:Parameter Name="EmpID" Type="Int32" /> 
      </UpdateParameters> 
     </asp:SqlDataSource> 

     <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" DataKeyNames="EmpID" DataSourceID="SqlDataSource1" ForeColor="Black" GridLines="Vertical"> 
      <AlternatingRowStyle BackColor="#CCCCCC" /> 
      <Columns> 
       <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> 
       <asp:BoundField DataField="EmpID" HeaderText="EmpID" InsertVisible="False" ReadOnly="True" SortExpression="EmpID" /> 
       <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" /> 
       <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" /> 
       <asp:BoundField DataField="Phone1" HeaderText="Phone1" SortExpression="Phone1" /> 
       <asp:BoundField DataField="Phone2" HeaderText="Phone2" SortExpression="Phone2" /> 
      </Columns> 
      <FooterStyle BackColor="#CCCCCC" /> 
      <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> 
      <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
      <SortedAscendingCellStyle BackColor="#F1F1F1" /> 
      <SortedAscendingHeaderStyle BackColor="#808080" /> 
      <SortedDescendingCellStyle BackColor="#CAC9C9" /> 
      <SortedDescendingHeaderStyle BackColor="#383838" /> 
     </asp:GridView> 

    </div> 
    </form> 
</body> 
</html> 

和一个Default.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 

public partial class _Default : System.Web.UI.Page 
{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     GridView1.DataBind(); 
    } 

    string connectionString = ConfigurationManager.ConnectionStrings["TicketsConnectionString"].ConnectionString; 

    protected void Button1_Click(object sender, EventArgs e) 
    { 


     DataSet ds = new DataSet(); 
     SqlConnection con = new SqlConnection(connectionString); 
     SqlCommand cmd = new SqlCommand("InsertIntoEmployee", con); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.Add("@LastName", SqlDbType.NVarChar).Value = LastName.Text; 
     cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar); 
     cmd.Parameters.Add("@Phone1", SqlDbType.NVarChar);//SqlDbType.NVarChar allowed to insert Russian letters 
     cmd.Parameters.Add("@Phone2", SqlDbType.NVarChar); 
     cmd.Parameters["@LastName"].Value = LastName.Text; 
     cmd.Parameters["@FirstName"].Value = FirstName.Text; 
     cmd.Parameters["@Phone1"].Value = Phone1.Text; 
     cmd.Parameters["@Phone2"].Value = Phone2.Text; 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 



     DisplayMessage.Text = "Запись добавлена."; 
      DisplayMessage.Visible = true; 

    } 
} 

,并抛出这个错误

The database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF' cannot be opened because it is version 706. This server supports version 655 and earlier. A downgrade path is not supported. 
Could not open new database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF'. CREATE DATABASE is aborted. 
An attempt to attach an auto-named database for file G:\sites\WebSite6\App_Data\Tickets.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: The database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF' cannot be opened because it is version 706. This server supports version 655 and earlier. A downgrade path is not supported. 
Could not open new database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF'. CREATE DATABASE is aborted. 
An attempt to attach an auto-named database for file G:\sites\WebSite6\App_Data\Tickets.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. 

Source Error: 


Line 14:  protected void Page_Load(object sender, EventArgs e) 
Line 15:  { 
Line 16:   GridView1.DataBind(); 
Line 17:  } 
Line 18: 

我认为在连接字符串中存在一些问题,但对于我来说一切看起来都很好,我的问题是如何解决这个问题?

+0

升级您的SQL Server版本,或者在您使用的相同版本的SQL Server中重新创建数据库。 –

+0

它是在同一个数据库日创建的,它是SQL Server Express 2012.我只是将.mdf文件从数据库数据文件夹复制到我的项目文件夹中并更改了'ConnectionSting' – Andrey

+1

您将数据库附加到SQL Server 2012以外的其他项。 –

回答

0

如果你想连接到一个本地数据库使用的LocalDB(因为vs2012,sql2012),即:

Data Source=(LocalDB)\v11.0;AttachDbFilename= (etc) 
0

我敢肯定,问题是aspnetdb.mdf无法打开。

有时这个文件被损坏。问题是我无法验证登录页面。

删除(并替换)我的登录表单控件后,问题就解决了。

原因是因为从asp.net控制使用aspnet成员资格。我用CSS样式替换了我的登录控件(用javascript),并删除了所有相关文件,并解决了这个问题。

我希望这可以帮助别人。

+0

你应该真的发表你自己的问题。这里有一个几岁。你可以回到这个问题,说明为什么这不适用于你,或者不同,以及你尝试过的其他事情。欢迎来到SO,祝你的问题顺利! – Madivad

相关问题