데이터베이스와 DataGridView에서 선택한 행을 삭제하려고합니다.행이 데이터베이스에서 삭제되지 않습니다. DataGridView & SQLCE
프로그램을 시작하고 행을 삭제하면 데이터 격자에서 제거되므로 아래 코드가 작동하는 것 같습니다. 프로그램을 다시로드하면 여전히 데이터 그릿에서 제거됩니다. 그러나 데이터베이스 탐색기를 사용하여 테이블을 보면 그 행이 여전히 있습니다. 테이블을 새로 고치고 프로그램을 다시로드하면 삭제 된 행이 나타납니다.
왜 이런 일이 발생하는지 알고 싶습니다.
private void button1_Click(object sender, EventArgs e)
{
Int32 selectedRowCount = dataAccounts.Rows.GetRowCount(DataGridViewElementStates.Selected);
if (selectedRowCount > 0)
{
using (SqlCeConnection c = new SqlCeConnection(Properties.Settings.Default.snogAccountsConnectionString))
{
c.Open();
for (int i = 0; i < selectedRowCount; i++)
{
using (SqlCeCommand com = new SqlCeCommand("DELETE FROM accounts WHERE id = (@id)", c))
{
com.Parameters.AddWithValue("@id", dataAccounts.SelectedRows[i].Cells["userID"].Value);
com.ExecuteNonQuery();
}
dataAccounts.Rows.RemoveAt(i);
}
}
}
else
{
MessageBox.Show("Select some rows to delete.");
}
}
어쩌면 "userID"대신 "id"를 넣어야합니까? – neeKo
레코드가 데이터베이스에서 삭제되었는지 확인 했습니까? –
@ NikoDrašković 열을 삭제 한 후 프로그램을 다시로드 할 때 열 이름이 'userID' –