如何在富文本框中保存具有相同日期的单独约会?

问题描述

有没有办法将 RichTextBox 中的每一行保存在 access/mdb 中的一行中或使用另一种方法? 我选择了用约会填充 RichTextBox 的日期,因此当我单击“保存”按钮时,它会将具有相同日期的单独约会发送到访问/mdb!

Exemple,What I wanted,and how it happens!

解决方法

所以你有一个包含 TODO 表的数据库:

class Todo
{
    public int Id {get; set;}
    public DateTime DueDate {get; set;}
    public string Description {get; set;}
}

您还有一个存储库类,它连接到数据库,您可以在其中获取 Todos 并保存新的 Todos,还可以执行其他操作,例如更新 Todo。

像这样:

class Repository
{
    public int Add(Todo todo) {...}

    public Todo Find(int Id) {get; set;}
    public IEnumerable<Todo> FetchAll() {...}
    public IEnumerable<Todo> FetchBetweenDates {DateTime start,Datetime finish) {...}
}

您可能没有所有功能,或者您可能拥有更多功能。重要的是 Add 方法。返回值:添加的 Todo 的 id

您还有一个多行 RichTextBox,其中每一行都包含您要添加的一个 Todo 的描述。

最后,您对表单有了一​​些控制,可以为 RichTextBox 中的所有 TODO 描述选择一个 DueDate。

private DateTime DueDate => DataTime.Parse(this.textBoxDueDate.Text);
// or maybe you have a DateTimePicker?

private void AddToRepository(DateTime dueDate,IEnumerable<string> todoDescriptions)
{
    Repository repository = new Repository(...);
    foreach (string todoDescription in totoDescriptions)
    {
        long todoId = repository.Add(new Todo
        {
            DueDate = dueDate,Description = todoDescription,});
        // what to do with the returned id?
    }
}

现在你需要的是一个读取描述的方法:

IEnumerable<string> ReadTodoDescriptions()
{
    return this.TodoRichTextBox.Lines;
}

现在把这一切放在一起,例如如果选择了一个菜单项:

private void OnMenuItem_Save_Clicked(object sender,...)
{
    this.AddToRepository(this.DueDate,this.ReadToDoDescriptions());
}