2013-08-21 285 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

相關問題