Привет, я разрабатываю проект vb. У меня есть база данных MS-access с 3 столбцами (Имя, Имя, Цена). В форму я добавил два текстовых поля и кнопку добавления (TextBox2 = Itno, Textbox = количество). если пользователь указывает Itno и количество и нажимает кнопку «Добавить», тогда имя и цена Itno должны отображаться в datagridview вместе с количеством, введенным в Textbox3.
Я пробовал, насколько мне известно. Но я не могу отображать данные в Datagridview. Кто-нибудь может мне помочь, пожалуйста...
Импортирует System.Data.OleDb Импортирует System.Data.DataTable
Public Class Form1
Dim ad As System.Data.OleDb.OleDbDataAdapter
Dim cm As System.Data.OleDb.OleDbCommand
Dim co As System.Data.OleDb.OleDbConnection
Dim dr As System.Data.OleDb.OleDbDataReader
Dim tb As New DataTable("Table")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tb.Columns.Add("Iteam", Type.GetType("System.Int32"))
tb.Columns.Add("Quantity", Type.GetType("System.String"))
tb.Columns.Add("Price", Type.GetType("System.String"))
DataGridView1.DataSource = tb
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
co = New System.Data.OleDb.OleDbConnection
co.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" &
"Data Source=C:\Users\Vicky\Desktop\db\bill\bill.mdb;"
Try
co.Open()
Dim cd As String
cd = "SELECT * FROM item WHERE Itno='" & TextBox2.Text & "'"
cm = New OleDb.OleDbCommand(cd, co)
dr = cm.ExecuteReader()
While dr.Read()
Dim n As String
Dim p As String
p = dr("Price").ToString
n = dr("Name").ToString
tb.Rows.Add(p.ToString, TextBox3.Text, n.ToString)
DataGridView1.DataSource = tb
End While
co.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
DataTable
из считывателя данных, то это однострочный:myDataTable.Load(myDataReader)
. - person jmcilhinney   schedule 19.10.2016DataTable
уже привязан кDataGrdiView
, то нет причин связывать его снова. Если вы хотите изменить данные, простоClear
Rows
коллекцию, а затем повторно заполните. Существующая привязка приведет к появлению новых данных в сетке. - person jmcilhinney   schedule 19.10.2016TextBoxes
? Код, который у вас есть, выглядит так, будто вы хотите использоватьTextBoxes
, чтобы указать, какие существующие строки нужно получить из базы данных. Если вы на самом деле не можете четко сказать нам, чего вы хотите, то мы волшебным образом не сможем сказать вам, как это сделать. Я могу понять, что вам может быть неясно, как добиться того, чего вы хотите, но как вы можете не понимать, как вы хотите, чтобы приложение вело себя? - person jmcilhinney   schedule 19.10.2016TextBox3.Text
кDataTable
вручную? Эвар, ты действительно собираешься дать правильное объяснение, или мне просто надоест тратить свое время на то, чтобы спрашивать тебя о вещах, которые ты должен был уже объяснить и сдаться. Остановись, подумай, объясни. - person jmcilhinney   schedule 19.10.2016WHERE Itno='" & TextBox2.Text & "'
(обратите внимание на'
). Еще одно замечание: с вашим запросом вы подвергаетесь внедрению SQL и неправильно размещаете свои объекты. (как связь) - person Matteo Umili   schedule 19.10.2016