Manoj Jagdale Ответов: 1

Обновите имя и другие записи, указав условие на имя


я работаю над окнами из &, в которых я хочу обновить имя и другие записи, задав условие на имя.
например, скрипт--&ГТ; обновление tbl_update_record название=@Название,mob_no=@Mobile_No, адрес=адрес@имя=@имя

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

public void LBUpdate_Click(object sender, EventArgs e)
        {            
            cn = new SqlConnection(cs);
            cn.Open();

            SqlCommand cmd = new SqlCommand("Sp_Register_Login_Update", cn);
                                    
            cmd.Parameters.AddWithValue("@Name", txtfname.Text);            
            cmd.Parameters.AddWithValue("@Mobile_No", txtmobileno.Text);      
            cmd.Parameters.AddWithValue("@Address", txtaddress.Text);
      
            cmd.CommandType = CommandType.StoredProcedure;
            int j=cmd.ExecuteNonQuery();

            if (j != 0)
            {
                lblmsg.text("Record Updated Successfully..");
            }

        }

Richard Deeming

И что же? В чем проблема с кодом, который вы показали?

phil.o

Я надеюсь, что вы можете быть на 100% уверены, что в вашей таблице никогда не будет омонимов; или у вас будут какие-то серьезные проблемы.
Вы должны дать первичный ключ вашей таблице и использовать этот ключ в предложении WHERE, чтобы однозначно идентифицировать строку, которую вы собираетесь обновить.

Manoj Jagdale

Я взял удостоверение на колонке id,
Поэтому при вставке идентификатора записи,
Он выдает ошибку "не удается вставить запись, потому что идентификатор генерируется автоматически".
Итак, как я могу удалить identity из столбца id или есть другой способ?

phil.o

При вставке просто не включайте столбец id; он будет автоматически сгенерирован системой БД.

Manoj Jagdale

Если я не возьму идентификатор и попытаюсь обновить имя и другую запись по имени( где условие). Тогда запись не может обновиться

phil.o

Да, потому что при обновлении вам нужен идентификатор. Просто опустить ее в инструкции Insert.
Вы знаете идентификатор, также включив его в инструкцию SELECT, которую вы используете для загрузки записей в первую очередь.

Manoj Jagdale

Хорошо Сделано. спасибо за поддержку..

1 Ответов

Рейтинг:
0

OriginalGriff

1) Почему вы устанавливаете значение столбца, которое, как вы знаете, должно уже равняться этому значению?

UPDATE tbl_update_record SET name=@Name, ... WHERE name=@Name

2) соединения, команды и т. д.-Это дефицитные ресурсы, вы должны закрыть и утилизировать их, когда закончите с ними.
Один using блок-это самый простой способ:
using (cn = new SqlConnection(cs))
    {
    cn.Open();
    
    using (SqlCommand cmd = new SqlCommand("Sp_Register_Login_Update", cn))
        {                            
        cmd.Parameters.AddWithValue("@Name", txtfname.Text);            
        cmd.Parameters.AddWithValue("@Mobile_No", txtmobileno.Text);      
        cmd.Parameters.AddWithValue("@Address", txtaddress.Text);
        
        cmd.CommandType = CommandType.StoredProcedure;
        int j=cmd.ExecuteNonQuery();
        
        if (j != 0)
            {
            lblmsg.text("Record Updated Successfully..");
            }
        }
    }

3) Если этот код не работает, проверьте свою хранимую процедуру, а затем используйте отладчик, чтобы точно увидеть, что находится внутри txtfname.Text и name колонка вашей таблицы.