akosisugar Ответов: 2

Проблема вставки записи в базу данных


код работает отлично.. но когда я смотрю внутрь своего tblstudent в моей БД, текст " System.Окна.Формы.TextBox, Text: "автоматически вставляется в некоторые из моих полей..

например: мобильный телефон: 09xxxxxxx

"Система.Окна.Формы.TextBox, Text: 09xxxxxxx" в моей таблице dbtable..

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

SqlConnection cnn = new SqlConnection(cs.constring());
SqlDataAdapter adapter = new SqlDataAdapter();

string sql = "insert into tblstudent (sno,s_name,gender,age,birthday,civil_status,place_of_birth,address,citizenship,religion,blood_type,mobile,telephone,email,father,f_occupation,mother,m_occupation,guardian,g_relationship,g_address,g_mobile,admission_date) values('" + txtsno.Text + "','" +
   txtname.Text + "','" + cbogender.Text + "','" + txtage.Text + "','" + dtpbirthday.Text + "','" + cbostatus.Text + "','" + txtplaceofbirth.Text + "','" + txtaddress.Text + "','" + txtcitizenship.Text + "','" + txtreligion.Text + "','" + txtbloodtype.Text + "','" + txtmobile + "','" +
   txttel.Text + "','" + txtemail.Text + "','" + txtfather.Text + "','" + txtfoccupation.Text + "','" + txtmother.Text + "','" + txtmoccupation + "','" + txtguardian.Text + "','" + txtrelationship.Text + "','" + txtgaddress + "','" + txtgmobile.Text + "','" + dtpadmission.Text + "')";

if (MessageBox.Show("do you want to save?", "choose an option", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
    try
    {
        cnn.Open();
        adapter.InsertCommand = new SqlCommand(sql, cnn);
        adapter.InsertCommand.ExecuteNonQuery();
        MessageBox.Show("record saved !! ");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}
else
{

}

2 Ответов

Рейтинг:
1

Karthik_Mahalingam

Его должно быть txtmobile.Text , txtmoccupation.Text, txtgaddress.Text

Примечание:
Форматирование строки sql-запроса уязвимый к SQL-инъекция[^] атаки
всегда использовать Параметризованные запросы для предотвращения атак SQL-инъекций в SQL Server[^]


akosisugar

спасибо тебе!

Рейтинг:
0

Patrice T

Никогда не создавайте SQL-запрос путем конкатенации с пользовательскими вводами, он называется "SQL-инъекция", он опасен для вашей базы данных и подвержен ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользовательский ввод типа "Брайан О'Коннер" может привести к сбою вашего приложения, то это уязвимость SQL-инъекции.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]