我想在用戶單擊「刪除」時同時從datagrid和數據庫中刪除選定的數據。它不工作,錯誤消息顯示「索引超出範圍。必須是非負值,小於集合的大小。參數名稱:索引」 任何人都可以幫助我解決這個問題。刪除不在Datagrid視圖的選定數據中工作
private void btnDeleteCustomer_Click(object sender, EventArgs e)
{
string strSqlConnection = @"Data Source = KK\SQLEXPRESS; Integrated Security = SSPI; Initial Catalog = JeanDB";
if ((dgvCustomerView.Rows.Count>0) && (dgvCustomerView.SelectedRows[1].Index != dgvCustomerView.Rows.Count))
{
SqlConnection sqlconn = new SqlConnection(strSqlConnection);
DataSet dsCustomers = new DataSet();
int iCustomerID = Convert.ToInt32(dgvEmpView.SelectedRows[0].Cells[0].Value.ToString());
string QueryDelCus = @"Delete from dbo.Customers WHERE CustomerID = @iCustomerID";
SqlDataAdapter sdaCustomer = new SqlDataAdapter(QueryDelCus, sqlconn);
sqlconn.Open();
DataTable dtEmployee = new DataTable("Customers");
sdaCustomer.Fill(dsCustomers, "Customers");
sqlconn.Close();
dgvEmpView.Rows.RemoveAt(dgvEmpView.SelectedRows[0].Index);
MessageBox.Show("Deleted Successfully");
}
}
使用DataAdapter時,不需要打開和關閉Connection對象。它會爲你打開和關閉連接。你似乎沒有使用dtEmployee。 – LarsTech