faizy001 Ответов: 2

Как проверить уникальный идентификатор в строке таблицы


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

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

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=DelhiEMP;Integrated Security=True");
           con.Open();
           string query = "select code from countermaster2";
           SqlDataAdapter da = new SqlDataAdapter(query,con);
           DataSet ds = new DataSet();
         if( ds.Tables["countermaster2"].Rows.Find(ds.Tables["countermaster2"].Rows)==comboBox2.SelectedItem )
           {
               MessageBox.Show("Code is already exsist");
           }
          else
           {
               MessageBox.Show("enter new records");
           }

Debarshi Chakraborty

Итак, ваш текущий код не работает? Что ты ищешь? лучший дизайн или правильный синтаксис?

faizy001

сэр, я хочу, чтобы мой код был запущен правильно. я пробовал много раз, но все равно не получалось. пожалуйста, сделайте мой код в правильном формате .

2 Ответов

Рейтинг:
1

samit kaneriya

bool existDuplicate= (from DataRow dr in ds.Tables["countermaster2"].Rows where (string)dr["code"] == comboBox2.SelectedItem select dr).Any();


Рейтинг:
0

Nirav Prabtani

Я думаю, что вы должны сделать это на стороне SQL.

IF NOT EXISTS(SELECT COLUMNNAME FROM TABLENAME WHERE COLUMNNAME=@COLUMNNAME)
BEGIN

-- do your stuff here
SELECT 'Record saved successfully' as Response

END
ELSE
BEGIN
  SELECT 'This value exists already' as Response

END


ОПЕРАЦИОННАЯ

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=DelhiEMP;Integrated Security=True");
           con.Open();
           string query = "select code from countermaster2 where code = @code";
           SqlDataAdapter da = new SqlDataAdapter(query,con);
           DataSet ds = new DataSet();
        //Pass @code value in command

            if(ds.Table[0].Rows.Count > 0)
           {
               MessageBox.Show("Code is already exsist");
           }
          else
           {
               MessageBox.Show("enter new records");
           }


Извините за опечатки

Дайте мне знать, если у вас все еще есть какие-либо вопросы или опасения по этому поводу.


faizy001

- Здравствуйте, сэр . я применил этот код таким образом, но он не работает . пожалуйста, проверьте, где . я ошибаюсь


Объект sqlconnection кон = новое sqlconnection("источник данных=.;Начальный Каталог=DelhiEMP;Комплексная Безопасность=Истина");
против.Открыть();
строка запроса query1 = "вставить в countermaster2(код, название, тип) значения(@код, @имя, @тип)";
SqlCommand cmd = new SqlCommand(query1, con);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
DataSet ds = новый набор данных();
УМК.Параметры.AddWithValue("@code", comboBox2. SelectedItem);
УМК.Параметры.AddWithValue ("@name", textBox2. Text);
УМК.Параметры.AddWithValue("@type", comboBox1. SelectedItem);

если (ДС.Столы["countermaster2"].Строк.Граф> 0)
{
Ящик для сообщений.Show ("код уже существует");
}
ещё
{
Ящик для сообщений.Show ("ввод новых записей");
}



УМК.Метод executenonquery();


Ящик для сообщений.Показать ("Сохранено");

Nirav Prabtani

Вы просто вставляете значения.

Вы должны выполнить то, что я предлагаю в приведенном выше решении.

faizy001

сэр это очень важно для меня пожалуйста решите эту проблему