Как получить данные из базы данных в созданном вручную столбце datagridview
Я пытаюсь получить данные из базы данных в datagridview1 для вручную созданного столбца.
Я создал четыре столбца datagridview1: 1.Serial , 2.CrLedgerName , 3.Amount , 4.Narration. я хочу получить данные в этом столбце datagridview1, которые я вручную добавил в свой gridview.Я пытаюсь использовать следующий код ниже.
Что я уже пробовал:
cn.Open(); SqlCommand cmd = cn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "Select SNo,DrLedgerName,Amount,Narration from ReceiptVoucher where Rid='" + TxtSearch.Text + "'"; cmd.ExecuteNonQuery(); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); dataGridView1.Rows.Add(dt.Rows.Count); foreach (DataRow item in dt.Rows) { foreach (DataGridViewRow dr in dataGridView1.Rows) { //MessageBox.Show(""); //dataGridView1.DataSource = rdr; dr.Cells[0].Value = item["SNo"].ToString(); dr.Cells[1].Value = item["DrLedgerName"].ToString(); dr.Cells[2].Value = item["Amount"].ToString(); dr.Cells[3].Value = item["Narration"].ToString(); } } cn.Close(); dataGridView1.Refresh();
Richard Deeming
cmd.CommandText = "Select SNo,DrLedgerName,Amount,Narration from ReceiptVoucher where Rid='" + TxtSearch.Text + "'";
Не делай этого так!
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
cmd.CommandText = "Select SNo,DrLedgerName,Amount,Narration from ReceiptVoucher where Rid = @Rid"; cmd.Parameters.AddWithValue("@Rid", TxtSearch.Text);
Member 13608869
сэр это приводит к тому же самому с предыдущим результатом
PeejayAdams
Да, результат был бы таким же в обычных обстоятельствах, но Ричард говорит, что если вы просто добавляете пользовательский текст к строке запроса, ваше программное обеспечение очень легко захватить.
Что произойдет, если я введу следующее в TxtSearch?
';DROP TABLE ReceiptVoucher
Всегда, всегда, всегда используйте команду.Параметры, чтобы передать аргумент или вы будете в мире неприятностей!
Серьезно, прочтите некоторые статьи, которые Ричард связал - SQL - инъекция является одним из самых распространенных источников существующих уязвимостей безопасности - это такая важная вещь-поймите это, прежде чем делать что-либо еще.
Member 13608869
о все в порядке да я только что прочитал это