Я пишу код для удаления выбранной строки из базы данных с помощью bindingNavigatorDeleteItem_Click.but, но она не работала. И я тоже не получаю ошибок. Пожалуйста, помогите мне.Модель данных сущности ADO.NET
private void bindingNavigatorDeleteItem_Click(object sender,EventArgs e)
{
try
{
int i = nODEDataGridView.Rows.Count;
if (MessageBox.Show("Delete?", "Confirm Delete", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
SqlConnection sc = new SqlConnection("Data Source=.;Initial Catalog=SDHDB;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddWithValue("@LINKID", SqlDbType.Int).Value = nODEDataGridView;
sc.Open();
cmd.CommandText = "DELETE * FROM NODE WHERE LINKID=";
da.Update(ds, "NODE");
cmd.Parameters.AddWithValue("@LINKID", SqlDbType.Int).Value = i;
int rows = cmd.ExecuteNonQuery();
sc.Close();
if (rows > 0)
MessageBox.Show("Success");
else
MessageBox.Show("Failure");
nODEBindingSource.RemoveCurrent();
}
else
MessageBox.Show("Abort");
}
catch
{
}
В вашем коде есть так много проблем, плохая структура, в которой вы не располагаете SqlDataAdapter, вы не будете удалять соединение, если происходит Исключение. Ваш первый шаг для исправления кода - это поместить что-то в блок catch, который покажет expcetion. Вы ничего не видите, потому что вы ловите исключение и ничего не делаете с ним. Вот вопрос, в котором я написал уровень доступа к данным: http://stackoverflow.com/questions/25816609/checking-user-name-or-user-email-already-exists/25817145#25817145. Вы должны создать свой код, как это, или что-то вроде этого. – mybirthname