- 作者:老汪软件技巧
- 发表时间:2024-09-05 11:01
- 浏览量:
1 前言
前面已经将存入的界面以及存入的数据绑定进行了说明,按照我们的设计思路,现在就是需要将按钮的click事件把数据存入到数据库中。
2 按钮设计2.1 View界面前端设计:
这里我们设计一个按钮,并通过Command属性绑定了一个命令。当按钮被点击时,会触发绑定的命令。
2.2 Model设计:
private CommandBase _loadclothinfo_btn;
public CommandBase LoadClothInfo_Btn
{
get
{
if (_loadclothinfo_btn == null)
{
_loadclothinfo_btn = new CommandBase();
_loadclothinfo_btn.DoExecute = new Action<object>(obj =>
{
这里可以对已有数据进行操作。
});
}
return _loadclothinfo_btn;
}
}
在get中,如果 _loadclothinfo_btn 为 null,则创建一个新的 CommandBase 实例,并设置其 DoExecute 属性。DoExecute 是一个动作委托,当命令被触发时执行。DoExecute 属性允许你定义当命令被触发时应该执行的具体操作。这通常是一个动作,比如更新数据库、发送网络请求或者更改视图的状态。这里就满足我们后续进行数据库存入的需要。我们在这里就可以完成数据的存入:model中定义了名称、类型等数据,在他们获得数据的时候,按下这个按钮,按钮事件执行存入操作。
SQL.SaveData(InputName_tb, InputType_tb, InputColor_tb, InputSize_tb, InputPrice_tb, ClothAddress);
将上述的使用直接写在DoExecute 委托中执行。
2.3 数据库存储的展开说明
using (SQLiteConnection connection = new SQLiteConnection(数据库地址))
{
connection.Open();
using (DbTransaction transaction = connection.BeginTransaction())
{
using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = "insert into DataInfo_tab (Name) values ('" + Name + "')";
affectedRows = command.ExecuteNonQuery();
}
transaction.Commit();
}
}
对SQLiteConnection、DbTransaction 和 SQLiteCommand使用来执行一个插入操作,并将结果存储在 affectedRows 变量中。相当于我们在连接数据库后,打开数据库,然后执行事务将数据写入,写入成功后提交事务保证数据写入正确!
2.4 ViewModel部分说明
这里需要将Model定义的属性进行实例化,也就是model的DataInputModel实例化,也就是按钮、输入框绑定的属性实例化。
public DataInputModel DataInput { get; set; } = new DataInputModel();
这里强调下,View界面后台需要将this.DataContext绑定ViewModel,否则数据更新和事件响应都不生效!
3 总结
结合之前的前置准备和今天的介绍,相信已经将整个数据存入流程与具体实现已经介绍得比较清楚了,还有问题的话,欢迎大家留言!