Заполнение datagridview из базы данных существующими столбцами, включая столбец combobox
Привет,
Я хотел заполнить datagridview из базы данных, datagridview имеет colums Product, Qty, Price, Total,Description
Столбец Product - это Combobox, в котором я хочу product_name как displayMember и product_id как ValueMember, но select sholud должен быть в соответствии с запросом.
Я попробовал ниже, но это не работает, я хочу это для обновления, как если бы пользователь хотел изменить продукт или кол-во и т. д.
Заранее спасибо.
Sorry if I did clearly described what I wanted to do becoz of my English, then I try to explain it once again. I have mysql tables product have fields product_id,product_name dailysale have fields product_id,qty,price,total,description I have a datagridview with having columns 1. Product, 2. Qty, 3. Price, 4. Total 5. Desc, and 6. billno Table dailysale can retrieve product_name based on product_id The Product Columns is a ComboBox in which the Display member is product_name and the value member is product_id, I save product_id in dailysale. Now What I want is to that When a user wanted to edit any sale order, He enter a billno and the bill retrieves into the datagridview where I dont know how to retrieve the products in the combobox cell. I tried the above code but in the below line it say object reference is not set to an instance of an object
Что я уже пробовал:
sql = "SELECT product.product_name,dailysale.product_id,dailysale.qty, dailysale.price, dailysale.total, dailysale.description FROM dailysale INNER JOIN product ON product.ID = dailysale.product_id WHERE billno ='" & txtbillno.Text & "'" cmd = new MysqlCommand(sql,conn) dr = cmd.excmd = New MySqlCommand(sqL, conn) dr = cmd.ExecuteReader dim i as Integer = 0 Do While dr.Read = True i+=1 Dim dgvcc As New DataGridViewComboBoxCell dgvcc = DirectCast(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1), DataGridViewComboBoxCell) Dim dt As DataTable = New DataTable dt.Load(dr) With dgvcc .DataSource = dt .ValueMember = "product_id" .DisplayMember = "product_name" .Selected = "" End With DataGridView1.Rows.Add(i, dgvcc.Value, dr("qty"), dr("price"), dr("total"), dr("description")) y += 17 Loop DataGridView1.Height += y
Maciej Los
"но это не работает- ...совсем не описательно!
[no name]
Это становится пустой тратой нашего времени, чтобы постоянно отвечать людям, которые не слушают, что им говорят.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]
nyt1972
Хорошо большое спасибо