簡體   English   中英

WP7-不允許訪問數據庫文件

[英]WP7 - Access to the database file is not allowed

這是我的課:

[Table]
public class Question
{
    [Column]
    public bool Sort { get; set; }
    [Column(IsPrimaryKey = true)]
    public int QuestionID { get; set; }
    [Column]
    public int Level { get; set; }
    [Column]
    public string Description { get; set; }
    [Column]
    public string Answer1 { get; set; }
    [Column]
    public string Answer2 { get; set; }
    [Column]
    public string Answer3 { get; set; }
    [Column]
    public string Answer4 { get; set; }
    [Column]
    public string RightAnswer { get; set; }
    [Column]
    public bool Show { get; set; }
}

public class QuestionContext : DataContext
{
    public QuestionContext(string connectionString)
        : base(connectionString)
    {
    }
    public Table<Question> Questions
    {
        get
        {
            return this.GetTable<Question>();
        }
    }
}

我正在嘗試連接到現有數據庫:

 private const string ConnectionString = @"appdata:App_Data\QuestionDb.sdf";

public GamePage()
{
    InitializeComponent();

    using (QuestionContext context = new QuestionContext(ConnectionString))
    {

        if (!context.DatabaseExists())
        {
            // create database if it does not exist
            context.CreateDatabase();
        }
        else
        {
            var questions = from o in context.Questions where o.Level == 1 && o.Show == false select o;
            var question = questions.FirstOrDefault();
        }
    }
}

我收到“不允許訪問數據庫文件”錯誤。 我認為問題出在我的連接字符串中。 它出什么問題了? 如何訪問文件夾App_Data中的SQLCE數據庫?

在您的app.config中添加以下內容

<connectionStrings>
  <add name="DataContext" 
       connectionString="Data source=DataDirectory|Database.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

然后在ConfigurationManager的幫助下獲取連接字符串。 也許您需要添加對System.Configuration的引用。

private const string ConnectionString = ConfigurationManager.ConnectionStrings["DataContext"].ConnectionString

您可以在這里在ConnectionString中了解有關DataDirectory的更多信息: http : //msdn.microsoft.com/zh-cn/library/cc716756( v=vs.100) .aspx

您必須像這樣編寫連接字符串:

MyDataContext db = new MyDataContext("Data Source = 'appdata:/mydb.sdf'; File Mode = read only;");

數據庫文件將是只讀的...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM