Работа с БД sqlite
Нужна помощь, открываю таблицу БД sqlite и отображаю в datagridview, у меня есть кнопка добавления новой строки(представил ниже), помощь нужна вот в чем, как сделать, чтобы при добавлении новой строки, она появлялась и в базе данных. И ещё сделать кнопку удаления последней строки из datagridview и БД. Ниже код добавления новой строки:
private void NewRowCreate_Click(object sender, EventArgs e)
{
double averageH = 0;
double delta;
MainTable.Rows.Add(1);
int RowCount = MainTable.Rows.Count;
for (int i = 0; i < RowCount - 2; i++)
{
delta = Math.Abs((Convert.ToDouble(MainTable.Rows[i].Cells[1].Value) - Convert.ToDouble(MainTable.Rows[i + 1].Cells[1].Value)));
averageH += delta;
}
averageH = averageH / (RowCount - 2);
Random random = new Random();
for (int j = 1; j < MainTable.ColumnCount; j++)
{
MainTable.Rows[RowCount - 1].Cells[j].Value = Math.Round(Convert.ToDouble(MainTable.Rows[0].Cells[j].Value) + (random.NextDouble() * (averageH / 2 - (-averageH / 2) + (-averageH / 2))), 4);
}
MainTable.Rows[RowCount - 1].Cells[0].Value = RowCount - 1;
}
Код подключения БД и открытия:
private SQLiteConnection conn;
private DataTable dt;
private bool OpenSQLFile()
{
string dbName;
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
ofd.Filter = "Файл базы данных SQLite (*.sqlite)|*.sqlite|Все файлы (*.*)|*.*";
if (ofd.ShowDialog() == DialogResult.OK)
{
conn = new SQLiteConnection("Data Source = " + ofd.FileName + ";Version=3");
conn.Open();
dbName = ofd.FileName;
return true;
}
return false;
}
private void ConnectTableButton_Click(object sender, EventArgs e)
{
OpenSQLFile();
string SQLQuery = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;";
SQLiteCommand command = new SQLiteCommand(SQLQuery, conn);
SQLiteDataReader reader = command.ExecuteReader();
TableList.Items.Clear();
TableList.Enabled = true;
OpenTableButton.Enabled = true;
while (reader.Read())
{
TableList.Items.Add(reader.GetString(0));
}
}
private void OpenTableButton_Click(object sender, EventArgs e)
{
if (TableList.SelectedIndex == -1)
{
MessageBox.Show("Пожалуйста, выберите таблицу", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string SQLQuery = "SELECT * FROM [" + TableList.SelectedItem + "] order by 1";
dt = new DataTable();
dt.Clear();
SQLiteDataAdapter adapter = new SQLiteDataAdapter(SQLQuery, conn);
adapter.Fill(dt);
NewRowCreate.Enabled = true;
MainTable.Columns.Clear();
MainTable.Rows.Clear();
for (int col = 0; col < dt.Columns.Count; col++)
{
string ColName = dt.Columns[col].ColumnName;
MainTable.Columns.Add(ColName, ColName);
MainTable.Columns[col].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
}
for (int row = 0; row < dt.Rows.Count; row++)
{
MainTable.Rows.Add(dt.Rows[row].ItemArray);
}
}