Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 数据模式:在wp7中使用c#本地数据库进行读写_Windows Phone 7_Windows Phone 7.1 - Fatal编程技术网

Windows phone 7 数据模式:在wp7中使用c#本地数据库进行读写

Windows phone 7 数据模式:在wp7中使用c#本地数据库进行读写,windows-phone-7,windows-phone-7.1,Windows Phone 7,Windows Phone 7.1,我用helper应用程序项目创建了一个本地数据库。并将其从隔离存储部署到安装文件夹,我通过添加现有项将内容构建操作添加到项目目录中。我的问题是我想插入数据,但我不知道如何移动db文件以隔离要插入的存储,数据必须添加到我的.sdf文件中,该文件也位于我的项目目录中。Souphia, 在学习使用WP时,我编写了一个跟踪任务的简单应用程序。 该应用程序的一个版本将所有任务数据存储在手机上的Sql中。 您可以在此处阅读文章并下载应用程序的所有代码: 但是,下面是该项目的一些代码: 首先,我们用适当的属

我用helper应用程序项目创建了一个本地数据库。并将其从隔离存储部署到安装文件夹,我通过添加现有项将内容构建操作添加到项目目录中。我的问题是我想插入数据,但我不知道如何移动db文件以隔离要插入的存储,数据必须添加到我的.sdf文件中,该文件也位于我的项目目录中。

Souphia, 在学习使用WP时,我编写了一个跟踪任务的简单应用程序。 该应用程序的一个版本将所有任务数据存储在手机上的Sql中。 您可以在此处阅读文章并下载应用程序的所有代码:

但是,下面是该项目的一些代码:

首先,我们用适当的属性装饰模型类:

[Table]
public class Task : INotifyPropertyChanged, INotifyPropertyChanging
{
    [Column(IsDbGenerated = false, IsPrimaryKey = true, CanBeNull = false)]
    public string Id
    {
        get { return _id; }
        set
        {
            NotifyPropertyChanging("Id");
            _id = value;
            NotifyPropertyChanging("Id");
        }
    }

    [Column]
    public string Name
    {
        get { return _name; }
        set
        {
            NotifyPropertyChanging("Name");
            _name = value;
            NotifyPropertyChanged("Name");
        }
    }

    [Column]
    public string Category
    {
        get { return _category; }
        set
        {
            NotifyPropertyChanging("Category");
            _category = value;
            NotifyPropertyChanged("Category");
        }
    }

    [Column]
    public DateTime? DueDate
    {
        get { return _dueDate; }
        set
        {
            NotifyPropertyChanging("DueDate");
            _dueDate = value;
            NotifyPropertyChanged("DueDate");
        }
    }

    [Column]
    public DateTime? CreateDate
    {
        get { return _createDate; }
        set
        {
            NotifyPropertyChanging("CreateDate");
            _createDate = value;
            NotifyPropertyChanged("CreateDate");
        }
    }

    [Column]
    public bool IsComplete
    {
        get { return _isComplete; }
        set
        {
            NotifyPropertyChanging("IsComplete");
            _isComplete = value;
            NotifyPropertyChanged("IsComplete");
        }
    }

    [Column(IsVersion = true)] private Binary _version;

    private string _id;
    private bool _isComplete;
    private DateTime? _createDate;
    private DateTime? _dueDate;
    private string _name;
    private string _category;
    public event PropertyChangedEventHandler PropertyChanged;
    public event PropertyChangingEventHandler PropertyChanging;

    public void NotifyPropertyChanged(string property)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(property));
    }

    public void NotifyPropertyChanging(string property)
    {
        if (PropertyChanging != null)
            PropertyChanging(this, new PropertyChangingEventArgs(property));
    }
}
在app.xaml.cs中的构造函数中,我有以下内容:

 TaskMasterDataContext = new  TaskMasterDataContext();

 if (!TaskMasterDataContext.DatabaseExists())
 {
    TaskMasterDataContext.CreateDatabase();
    DatabaseHelper.SetupDatabase(TaskMasterDataContext);
 }
下面是TaskMasterDataContext.cs代码

 public class TaskMasterDataContext : DataContext
    {
        public TaskMasterDataContext() : base("Data Source=isostore:/TaskMasterData.sdf")
        {
        }
        public Table<Task> Tasks;
    }


    public static class DatabaseHelper
    {
        public static void SetupDatabase(TaskMasterDataContext dataContext)
        {
            string category = string.Empty;
            var tasks = new List<Task>();
            for (int i = 0; i < 20; i++)
            {
                tasks.Add(new Task()
                              {
                                  Id = System.Guid.NewGuid().ToString(),
                                  Category = GetCategoryString(i),
                                  CreateDate = DateTime.Now,
                                  DueDate = DateTime.Now.AddDays(new Random().Next(1, 30)),
                                  IsComplete = false,
                                  Name = String.Format("{0} Task # {1}", GetCategoryString(i), i)
                              });
            }
            dataContext.Tasks.InsertAllOnSubmit(tasks);
            dataContext.SubmitChanges();
        }

        private static string GetCategoryString(int i)
        {
            if (i%2 == 0)
                return "home";

            if (i%3 == 0)
                return "personal";

            return "work";
        }
    }
公共类TaskMasterDataContext:DataContext
{
public TaskMasterDataContext():base(“数据源=isostore:/TaskMasterData.sdf”)
{
}
公共表任务;
}
公共静态类DatabaseHelper
{
公共静态void设置数据库(TaskMasterDataContext dataContext)
{
字符串类别=string.Empty;
var tasks=新列表();
对于(int i=0;i<20;i++)
{
tasks.Add(新任务()
{
Id=System.Guid.NewGuid().ToString(),
类别=GetCategoryString(i),
CreateDate=DateTime。现在,
DueDate=DateTime.Now.AddDays(new Random().Next(1,30)),
IsComplete=false,
Name=String.Format(“{0}任务{1}”,GetCategoryString(i),i)
});
}
dataContext.Tasks.InsertAllOnSubmit(任务);
dataContext.SubmitChanges();
}
私有静态字符串GetCategoryString(int i)
{
如果(i%2==0)
返回“家”;
如果(i%3==0)
返回“个人”;
返回“工作”;
}
}
DatabaseHelper类只是在数据库创建之后用一些测试数据填充数据库。
我希望这会有所帮助。

除了Alex发布的sqlce工具箱外,它还非常方便。它将为您生成dbml并添加createifnotexist方法。但我是针对sql server的,和wp7中使用的本地数据库没有区别吗?!它是用于在电话上运行的sql ce的。生成代码!-在当前项目中生成Windows Phone LINQ到SQL DataContext类(.cs或.vb)