Dobrý den, zkuste následující kód:
Dim connectionString As String = "SERVER=serverXY;DATABASE=testovaci_db;UID=dbUser;PWD=user123"
Dim spojeni As New SqlClient.SqlConnection(connectionString)
Dim dt As Data.DataTable
Dim jmeno As String
jmeno = InputBox("jmeno")
Dim cmd As New SqlClient.SqlCommand
With cmd
.Connection = spojeni
.CommandType = CommandType.StoredProcedure
.CommandText = "procedura1"
.Parameters.Add("@jmeno", SqlDbType.Char)
.Parameters("@jmeno").Direction = ParameterDirection.Input
.Parameters("@jmeno").Value = jmeno
End With
Dim da As New SqlClient.SqlDataAdapter
da.SelectCommand = cmd
Dim ds As New DataSet
da.Fill(ds, "Jmena")
If Not ds.Tables("Jmena") Is Nothing Then
dt = ds.Tables("Jmena")
End If
Vstupní parametr přidáte pomocí kolekce Parameters objektu SqlCommand. Vlastnost Direction ve výše uvedeném příkladě není nutné nastavovat. Defaultně se totiž předpokládá, že pracujeme se vstupními parametry. Práce s výstupním parametrem by pak vypadala asi takto. Předpokládejme, že chcete vrátit jen jeden údaj. Např. počet jmen, které vyhovují nějaké podmínce. Dále předpokládejme, že uložená procedura má takto označený výstupní parametr @Pocet. Pak postačí využít metodu ExecuteScalar objektu SqlCommand např. podle následujícího kódu :
...
Dim nPocet As Integer = 0
Dim cmd As New SqlClient.SqlCommand
With cmd
.Connection = spojeni
.CommandType = CommandType.StoredProcedure
.CommandText = "procedura2"
.Parameters.Add("@Pocet", SqlDbType.Char)
.Parameters("@Pocet").Direction = ParameterDirection.Output
nPocet = CType(.ExecuteScalar(), Integer)
End With
V proměnné nPocet pak máte uložen výsledek. Pokud jde pouze o naplnění ComboBoxu, mohlo by to fungovat následovně:
Me.ComboBox.DataSource = dt
Me.ComboBox.DisplayMember = "JMENO"
Kde dt je objekt DataTable naplněný údaji z databáze se jmény. Objekt DataTable se přiřadí vlastnosti DataSource ComboBoxu a vlastnost DisplayMember nastavíte na pole tabulky, které chcete v ComboBoxu zobrazit. V našem případě tedy pole JMENO objektu DataTable (dt.Columns("JMENO")
|