Member 13847218 Ответов: 2

Ошибка обновления пола


пол ='"+a+"'
не обновить работать PLS ответить

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

строка а;
частный недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
если (радиомал.Проверен)
{
а = радиомал.Текст;
}
еще
{
а = радиофем.Текст;
}


Объект sqlconnection АВС = новое sqlconnection("источник данных=рабочий стол-8BEJFRN\\именем sqlexpress;начальный каталог=assignment1;Комплексная безопасность=истина");
Азбука.Открыть();
SqlCommand bcd = new SqlCommand("update cust set [Nic No]='" + txtnicn1.Текст + "',имя='" + txtnam1.Текст + "',адрес='" + txtadd.Text + "',[Mobile no]='" + txtcon1.Text + "',gender='"+a+"' где [Custermer Id] ='" + txtcusid1.Текст + "'", abc);
БХД.Метод executenonquery();
Ящик для сообщений.Показать("ваше обновление ");
ошибка обновление пол пожалуйста помогите

Manish K. Agarwal

получаете ли вы правильное значение в var a перед формированием вашего обновления SQL

2 Ответов

Рейтинг:
2

MadMyche

1. Лучший способ получить помощь-это использовать лучшие практики. Помимо последствий для безопасности, это значительно облегчает чтение в данном случае.

2. Вы не опубликовали фактическую форму, поэтому мы не можем сказать, что у вас происходит с радиоприемниками

3. Попробуйте отладить и посмотреть, какое значение присвоено один.

Это грубый набросок того, что ваш код должен выглядит как:

private void button1_Click(object sender, EventArgs e) {

    int RowsAffected = -1;
    if (radiomal.Checked) { a = radiomal.Text; }
    else { a = radiofem.Text; }

    string ConnInfo = "Data Source=;Initial Catalog=;Integrated Security=True";
    string CmdText = "UPDATE cust   SET [Nic No] = @NicNo, Name = @Name, Address = @Address, [Mobile no] = @MobileNo, gender = @Gender  WHERE [Custermer Id] = @CustomerID";
    using (SqlConnection conn = new SqlConnection(ConnInfo)) {
        SqlCommand cmd = new SqlCommand(CmdText, conn);

        cmd.Parameters.AddWithValue("@NicNo", txtnicn1.Text);
        cmd.Parameters.AddWithValue("@Name", txtnam1.Text);
        cmd.Parameters.AddWithValue("@Address", txtadd.Text);
        cmd.Parameters.AddWithValue("@MobileNo", txtcon1.Text);
        cmd.Parameters.AddWithValue("@Gender", a);
        cmd.Parameters.AddWithValue("@CustomerID", txtcusid1.Text);

        conn.Open();
        RowsAffected = cmd.ExecuteNonQuery();
        conn.Close();
    }
    MessageBox.Show(string.Format ("Your update affected {0} rows", RowsAffected));
}


Рейтинг:
1

OriginalGriff

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

Когда вы объединяете строки, вы вызываете проблемы, потому что SQL получает такие команды, как:

SELECT * FROM MyTable WHERE StreetAddress = 'Baker's Wood'
Цитата, добавленная пользователем, завершает строку в том, что касается SQL, и вы получаете проблемы. Но могло быть и хуже. Если я приду и наберу вместо этого: "x';DROP TABLE MyTable;--", то SQL получит совсем другую команду:
SELECT * FROM MyTable WHERE StreetAddress = 'x';DROP TABLE MyTable;--'
Которые SQL видит как три отдельные команды:
SELECT * FROM MyTable WHERE StreetAddress = 'x';
Совершенно правильный выбор
DROP TABLE MyTable;
Вполне допустимая команда "удалить таблицу"
--'
А все остальное-это комментарии.
Так оно и происходит: выбирает любые совпадающие строки, удаляет таблицу из базы данных и игнорирует все остальное.

Поэтому всегда используйте параметризованные запросы! Или будьте готовы часто восстанавливать свою БД из резервной копии. Вы ведь регулярно делаете резервные копии, не так ли?

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


Member 13847218

только гендерная ошибка

OriginalGriff

Поверь мне, то, что ты делаешь, неправильно и очень опасно. Исправь это! Ваша проблема, вероятно, уйдет в то же самое время.

Member 13847218

уже мужской save database
обновление женщина
не изменить женский

OriginalGriff

Если вы не слушаете людей, когда они говорят вам, что делать, есть ли вообще смысл задавать вопрос? Я почти уверен, что в моем ответе нет особого смысла ...