не добавляются и не обновляются строки
Написал код для удаления,обновления и добавления строк.Удаление работает ,а с обновлением и удаление проблемы
private void ReloadData()
{
try
{
ds.Tables["Othet"].Clear();
adapter.Fill(ds, "Othet");
OthetView.DataSource = ds.Tables["Othet"];
for (int i = 0; i < OthetView.Rows.Count; i++)
{
DataGridViewLinkCell linkCell = new DataGridViewLinkCell();
OthetView[7, i] = linkCell;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
ReloadData() ;
}
private void OthetView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if(e.ColumnIndex == 7)
{
string task = OthetView.Rows[e.RowIndex].Cells[7].Value.ToString();
if (task == "Delete")
{
if (MessageBox.Show("Удалить эту строку?","Удаление",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)
{
int rowIndex = e.RowIndex;
OthetView.Rows.RemoveAt(rowIndex);
ds.Tables["Othet"].Rows[rowIndex].Delete();
adapter.Update(ds, "Othet");
}
}
else if (task == "Insert")
{
int rowIndex = OthetView.Rows.Count - 1;
DataRow row = ds.Tables["Users"].NewRow();
row["Time"] = OthetView.Rows[rowIndex].Cells["Time"].Value;
row["TABN"] = OthetView.Rows[rowIndex].Cells["TABN"].Value;
row["id_oper"] = OthetView.Rows[rowIndex].Cells["id_oper"].Value;
row["Id_kass"] = OthetView.Rows[rowIndex].Cells["Id_kass"].Value;
row["Prixod"] = OthetView.Rows[rowIndex].Cells["Prixod"].Value;
row["Rasxod"] = OthetView.Rows[rowIndex].Cells["Rasxod"].Value;
ds.Tables["Othet"].Rows.Add(row);
ds.Tables["Othet"].Rows.RemoveAt(ds.Tables["Othet"].Rows.Count);
OthetView.Rows.RemoveAt(OthetView.Rows.Count - 1);
OthetView.Rows[e.RowIndex].Cells[7].Value = "Delete";
adapter.Update(ds, "Othet");
newRowAdding = false;
}
else if(task == "Update")
{
int r = e.RowIndex;
ds.Tables["Othet"].Rows[r]["Time"] = OthetView.Rows[r].Cells["Time"].Value;
ds.Tables["Othet"].Rows[r]["TABN"] = OthetView.Rows[r].Cells["TABN"].Value;
ds.Tables["Othet"].Rows[r]["id_oper"] = OthetView.Rows[r].Cells["id_oper"].Value;
ds.Tables["Othet"].Rows[r]["Id_kass"] = OthetView.Rows[r].Cells["Id_kass"].Value;
ds.Tables["Othet"].Rows[r]["Prixod"] = OthetView.Rows[r].Cells["Prixod"].Value;
ds.Tables["Othet"].Rows[r]["Rasxod"] = OthetView.Rows[r].Cells["Rasxod"].Value;
adapter.Update(ds, "Othet");
OthetView.Rows[e.RowIndex].Cells[7].Value = "Delete";
}
ReloadData();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void OthetView_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
try
{
if (newRowAdding == false)
newRowAdding = true;
int lastRow = OthetView.Rows.Count - 2;
DataGridViewRow row = OthetView.Rows[lastRow];
DataGridViewLinkCell linkCell = new DataGridViewLinkCell();
OthetView[7, lastRow] = linkCell;
row.Cells["Delete"].Value = "Добавить";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void OthetView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
try
{
if (newRowAdding == false)
{
int rowIndex = OthetView.SelectedCells[0].RowIndex;
DataGridViewRow editingRow = OthetView.Rows[rowIndex];
DataGridViewLinkCell linkCell = new DataGridViewLinkCell();
OthetView[7, rowIndex] = linkCell;
editingRow.Cells["Delete"].Value = "Обновить";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void OthetView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress -= new KeyPressEventHandler(Collumn_KeyPress);
if (OthetView.CurrentCell.ColumnIndex == 2 ^ OthetView.CurrentCell.ColumnIndex == 3 ^ OthetView.CurrentCell.ColumnIndex == 4 ^ OthetView.CurrentCell.ColumnIndex == 5 ^ OthetView.CurrentCell.ColumnIndex == 6)
{
TextBox textBox = e.Control as TextBox;
if (textBox != null)
{
textBox.KeyPress += new KeyPressEventHandler(Collumn_KeyPress);
}
}
}
private void Collumn_KeyPress(object sender, KeyPressEventArgs e)
{
if(!char.IsControl(e.KeyChar)&& !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
}
}