问题描述
有没有办法将 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());
}