diff --git a/UserWindow/MachineSet.xaml b/UserWindow/MachineSet.xaml index 306ce6c..d789868 100644 --- a/UserWindow/MachineSet.xaml +++ b/UserWindow/MachineSet.xaml @@ -23,26 +23,47 @@ - + - + - - - - - - - + Text="归属信息" VerticalAlignment="Top" Width="85" FontSize="20"/> + + + + + + + + + + + + + + + + - + + + + + + + + + @@ -92,6 +113,7 @@ + public partial class MachineSet : Window { + private string _id = ""; public MachineSet() { InitializeComponent(); } private void Button_Preservation(object sender, RoutedEventArgs e) - { + { + Dictionary _new = new Dictionary();//缓存函数 + _new.Add("Name", _Name.Text); + _new.Add("Machine", _Machine.Text); + _new.Add("Model", GROUP.Text); + _new.Add("IP", _IP.Text); + _new.Add("MachineUser", _MachineUser.Text); + _new.Add("MachinePassword", _MachinePassword.Text); + _new.Add("Information", _inf.Text); + _new.Add("State", 0); + var rowdata = MainWindowViewModel.Selet_Memory(MainWindowViewModel._machines, "ID", "ID='" + _id + "'"); + if (rowdata != null) + { + MainWindowViewModel.Updata_Memory(MainWindowViewModel._machines, "ID='" + _id + "'", _new); + } + else + { + MainWindowViewModel.Insert_Memory(MainWindowViewModel._machines, _new);// 执行插入 + } + DataGridm.ItemsSource = MainWindowViewModel._machines.DefaultView; + _Name.Text = null; + _Machine.Text = null; + _id = ""; } private void Button_Delete(object sender, RoutedEventArgs e) { - + try + { + MainWindowViewModel.Delete_Memory(MainWindowViewModel._machines, "ID='" + _id + "'"); + } + catch (Exception) { } + finally + { + DataGridm.ItemsSource = MainWindowViewModel._machines.DefaultView; + _Name.Text = null; + _Machine.Text = null; + _id = ""; + } } private void DataGridm_MouseDoubleClick(object sender, MouseButtonEventArgs e) { - + int rownum = DataGridm.SelectedIndex;//获取鼠标选中行并定义变量 + if (rownum != -1)//判断鼠标定位是否有效 + { + /*定位选中行及指定列单元格文本信息*/ + _id = (DataGridm.Columns[0].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim();//定位第列 + _Name.Text = (DataGridm.Columns[1].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim();//定位第列 + _Machine.Text = (DataGridm.Columns[2].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim();//定位第列 + GROUP.Text = (DataGridm.Columns[4].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim(); + _IP.Text = (DataGridm.Columns[5].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim(); + _MachineUser.Text = (DataGridm.Columns[6].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim(); + _MachinePassword.Text = (DataGridm.Columns[7].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim(); + _inf.Text = (DataGridm.Columns[8].GetCellContent(DataGridm.Items[rownum]) as TextBlock)!.Text.Trim(); + } } private void Window_Loaded(object sender, RoutedEventArgs e) { - + DataGridm.ItemsSource = MainWindowViewModel._machines.DefaultView; } } } diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index dc473b9..d46aaf9 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -87,6 +87,7 @@ namespace SunlightAggregationManager.ViewModel } Machines.RowChanged += Machines_Updata; + Machines.RowDeleting += Machines_Updata; UserData.RowChanged += UserData_Updata;//注册userdata表更新事件 UserData.RowDeleting += UserData_Updata; } @@ -156,7 +157,50 @@ namespace SunlightAggregationManager.ViewModel private void Machines_Updata(object sender, DataRowChangeEventArgs e) { - + Dictionary row_entity = new Dictionary(); + Dictionary userlog = new Dictionary(); + + if (e.Action == DataRowAction.Change) + { + //修改的行回传 + foreach (DataColumn col in Machines.Columns) + { + row_entity.Add(col.ColumnName, e.Row.Field(col.ColumnName) ?? DBNull.Value);//传入字段和值(值允许为空) + + if (ActionLog.Columns.Contains(col.ColumnName))//添加到行为记录表 + { + userlog.Add(col.ColumnName, e.Row.Field(col.ColumnName) ?? DBNull.Value);//传入字段和值(值允许为空) + } + } + SQLiteHelpers.Update("Machines", row_entity, "ID='" + e.Row.Field("ID") + "'", null); + userlog.Add("Action", "Command"); + userlog.Add("Time", DateTime.Now.ToString("yyyy-MM-dd dd:HH:mm:ss:fff")); + userlog.Add("Note", "Machine = " + e.Row.Field("Machine")); + SQLiteHelpers.InsertData("ActionLog", userlog); + + } + if (e.Action == DataRowAction.Add) + { + //添加的行回传 + foreach (DataColumn col in Machines.Columns) + { + row_entity.Add(col.ColumnName, e.Row.Field(col.ColumnName) ?? DBNull.Value);//传入字段和值(值允许为空) + } + SQLiteHelpers.InsertData("Machines", row_entity); + userlog.Add("Time", DateTime.Now.ToString("yyyy-MM-dd dd:HH:mm:ss:fff")); + userlog.Add("Action", "New Account"); + userlog.Add("Note", "Machine = " + e.Row.Field("Machine")); + SQLiteHelpers.InsertData("ActionLog", userlog); + } + if (e.Action == DataRowAction.Delete) + { + //删除的行回传 + SQLiteHelpers.Delete("Machines", "ID='" + e.Row.Field("ID") + "'", null); + userlog.Add("Time", DateTime.Now.ToString("yyyy-MM-dd dd:HH:mm:ss:fff")); + userlog.Add("Action", "Delete Account"); + userlog.Add("Note", "Machine = " + e.Row.Field("Machine")); + SQLiteHelpers.InsertData("ActionLog", userlog); + } } private void UserData_Updata(object sender, DataRowChangeEventArgs e)