Member 14137624 Ответов: 2

Ниже приведен мой код удаления и здесь я хочу добавить если выбранный человек сможет удалить конкретную строку данных


private void BtnDelete_Click(object sender, EventArgs e)
{
    String cmdString = "DELETE FROM [Product_Details] WHERE ID=@ID";

    SqlCommand cmd = new SqlCommand(cmdString, con);
    cmd.Parameters.Add(new SqlParameter("ID", Int32.Parse(cmbProducts.SelectedValue.ToString())));

    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    MessageBox.Show(" Data Deleted Successfully ");
}


Что я уже пробовал:

Above is my delete code and here i want to add as, if a selected person will able to delete the particular line of data others can't delete the particular line of data

2 Ответов

Рейтинг:
0

OriginalGriff

Ваш вопрос не имеет большого смысла: как только элемент удаляется из БД, он удаляется - ни один другой пользователь не может удалить удаленную информацию, так же как два разных человека не могут сжечь одну и ту же банковскую купюру!

Если вы говорите, что "если он уже был удален, не показывайте сообщение "удалено успешно", то используйте возвращаемое значение из ExecuteNonQuery, чтобы сообщить вам, сколько строк было удалено:

int affected = cmd.ExecuteNonQuery();
Если он равен нулю, то там нет совпадающих строк, поэтому ничего не было удалено.

Если это не то, с чем у вас возникли трудности, вам нужно будет объяснить гораздо более подробно, в чем именно заключается ваша проблема!


Member 14137624

я хочу, чтобы если человек хочет удалить данные, у него должна быть аутентификация, тогда только он может удалить эти данные

OriginalGriff

Какого рода разрешение? Здесь есть много возможностей:
1) пользователи SQL должны иметь соответствующий доступ к БД, и "удаление строк" может быть запрещено одним пользователям, а не другим - это означает, что ваша строка подключения SQL может отличаться для "разрешенных пользователей" и "запрещенных пользователей".
2) ваши пользователи предположительно должны войти в вашу систему: в этом случае (а также в соответствии с положениями GDPR, о которых, я надеюсь, вы знаете) ваша система "знает", что это за Пользователь - вы можете проверить это и даже не пытаться!
3) возможно, что ваш пользователь входит в свою ОС, и это тот самый "пользователь", о котором вы говорите. Опять же, это код в вашем приложении, чтобы проверить его.

Серьезно, мы получаем только то, что вы печатаете для работы - я не неловок, просто не информирован обо всей вашей системе и о том, как этот маленький кусочек кода вписывается в нее!

Member 14137624

у меня есть вставить удалить обновления и поиска участие в моей программного обеспечения это система инвентаризации для моей компании, здесь я могу войти в системное программное обеспечение и вставка, обновление, удаление и поиск данных во время удаления только некоторые люди могут удалить данные в компании у меня нет логина пароля для SQL Server, как я могу сделать для удаления части

OriginalGriff

Если вы используете "интегрированную безопасность" как часть своей строки подключения, вам придется изменить ее при выпуске программного обеспечения, поскольку оно вряд ли будет работать в производстве (но ваша строка подключения будет отличаться для prod и dev в любом случае, или у вас возникнут серьезные проблемы позже). И пользователи SQL, которых вы настроили, должны иметь достаточно разрешений, чтобы выполнять свою работу, не больше и не меньше - или вы оставляете свою БД открытой для случайного или преднамеренного повреждения.

Если вы, пользователи, входите в свою систему инвентаризации, а затем используете данные пользователей, чтобы решить, являются ли они "разрешенными" - мы не можем помочь вам в этом, у нас нет доступа к вашему коду входа или БД, которая его поддерживает, - поэтому мы понятия не имеем, что вы храните, что идентифицирует пользователей как "разрешенных" или "запрещенных"!

OriginalGriff

О боже, ты же студентка ... это же чертовски ужасный код.
Так много серьезных ошибок в таком маленьком куске кода.
Жестко закодированные строки подключения, код, подверженный SQL-инъекциям, несколько жестко закодированных строк подключения, поэтому они не всегда используются, против имен элементов управления по умолчанию, отсутствие согласованности в стиле кодирования, случайное использование блока "using", случайное использование блоков "try...catch"...

И это не показывает ничего полезного вообще, чтобы сделать с вашими пользователями.

Не публикуйте весь свой код, я не ваш наставник, и я не хочу пробираться через недокументированные вещи вроде этого, чтобы попытаться выяснить, что может быть уместным - это пустая трата моего времени. Вы хотите, чтобы я посмотрел на код, показал мне соответствующие биты, чтобы мне не пришлось искать их (и не мог критиковать остальное).

Member 14137624

если я нажму кнопку Удалить он должен спросить имя пользователя пароль а затем он должен разрешить удалить данные

OriginalGriff

И в чем, собственно, заключается ваша проблема?
(Я собираюсь проигнорировать "почему, черт возьми, вы думаете, что это было бы хорошей идеей для пользователя, чтобы делать это каждый раз?")

Рейтинг:
0

chimeric69

Взгляните на эту статью о авторизации, которая встроена в нее .Сеть Безопасность внутри ASP.NET MVC[^]