Заполнение текстовых полей из списка выбора
У меня есть небольшая программа,и когда она запускается, база данных MDB заполняет имена в списке. Я разрушил свой мозг, пытаясь выбрать имя в списке и полную информацию, чтобы затем заполнить текстовые поля. В конце концов я хочу использовать текстовые поля для добавления новых записей в базу данных. Любая помощь ценится, вот мой код, закомментированный код - это то, что не будет работать.
Imports System.Data Imports System.Data.OleDb Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\Hospital.mdb;" Dim objConnection As New OleDbConnection(strConnection) Dim objConnection2 As New OleDbConnection(strConnection) 'Open the connection with error handling Try objConnection.Open() Catch OleDbExceptionErr As OleDbException MessageBox.Show(OleDbExceptionErr.Message) Catch InvalidOperationErr As InvalidOperationException MessageBox.Show(InvalidOperationErr.Message) End Try 'Create a command object with the SQL statement needed to select the first names Dim strSQL As String = "SELECT * FROM Patients" Dim objCommand As New OleDbCommand(strSQL, objConnection) 'Create a data adapter and data table then fill the data table Dim objDataAdapter As New OleDbDataAdapter(objCommand) Dim objDataTable As New DataTable("PatientID") objDataAdapter.Fill(objDataTable) 'Create connection and release resources objConnection.Close() objConnection.Dispose() objConnection = Nothing objCommand.Dispose() objCommand = Nothing objDataAdapter.Dispose() objDataAdapter = Nothing 'Fill names into the listbox For Each Row As DataRow In objDataTable.Rows lstNames.Items.Add(Row.Item("Patient Name")) Next 'Release resources objDataTable.Dispose() objDataTable = Nothing End Sub Public Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\Hospital.mdb;" 'Dim DR As DataRow = Select * From Patients Where PatientID = "'" & lstNames.SelectedValue & "'" 'txtName.Text = DR("Patient Name") 'txtWard.Text = DR("Ward") 'txtNotes.Text = DR("Notes") End Sub
Что я уже пробовал:
'Dim DR As DataRow = Select * From Patients Where PatientID = "'" & lstNames.SelectedValue & "'" 'txtName.Text = DR("Patient Name") 'txtWard.Text = DR("Ward") 'txtNotes.Text = DR("Notes")
[no name]
Конечно, это не сработает. Вы пытаетесь присвоить строку потоку данных, который говорит мне, что вы не понимаете фундаментальных основ программирования. И даже если бы вы могли это сделать, вы просите атаку SQL-инъекции.
Richard MacCutchan
Этот код не имеет никакого смысла. у вас уже есть все данные в вашей таблице данных, поэтому вам просто нужно скопировать элементы из соответствующих ячеек в текстовые поля.