我想用dataGrid更新数据库(SQLite(。我可以更改 dataGrid 中的值,但更改不适用于数据库这就是为什么我想添加一个按钮"保存"来保存 dataGrid 中应用的所有更改,
我搜索了问题,但找不到答案
这是我填充数据网格的 C# 代码:
SQLiteConnection sQLiteConnection = new SQLiteConnection("Data source = dataSet.db ; version = 3 ;");
SQLiteCommand sQLiteCommand;
SQLiteDataAdapter sQLiteDataAdapter;
System.Data.DataTable dataTable = new System.Data.DataTable("Naamaa");
SQLiteCommandBuilder cmd;
DataSet ds;
public ManipulateData(string wilaya, int theme)
{
InitializeComponent();
try
{
sQLiteConnection.Open();
sQLiteCommand = new SQLiteCommand(sQLiteConnection);
sQLiteCommand.CommandText = "SELECT * FROM " + wilaya + " ;";
sQLiteCommand.ExecuteNonQuery();
sQLiteDataAdapter = new SQLiteDataAdapter(sQLiteCommand);
sQLiteDataAdapter.Fill(dataTable);
McDataGrid.ItemsSource = dataTable.DefaultView;
}catch
{
MessageBox.Show("Error");
}
}
这是 XAML 代码:
<Grid Background="White">
<DataGrid x:Name="McDataGrid" />
</Grid>
我现在正在做一些非常相似的事情,只是我正在使用Postgres。
执行此操作的一种简单方法是将 DataGridView.ReadOnly 属性设置为 true,然后当用户在 DataGridView 中选择一行时,您可以启动一个 Windows 窗体,其中包含该选定行中的所有数据,并使用"保存"按钮来更新数据库中的数据。然后,从该按钮,您只需使用从表单收集的数据启动对数据库的更新查询。
如果要修改 DataGridView 本身上的数据,事情会变得更加复杂,因为您需要跟踪在 DataGridView 上编辑了哪些行(除非您不关心优化并且可以对每一行进行更新,无论它是否已编辑(。可以将 DataGridViewRow 列表用于所有已修改的行。
这是可以理解的吗?不太习惯写英语,特别是在相当复杂的问题上。