Hej Du har en if-sats Finns en artikel om detta som du kan använda för att göra det smidigt för dig. Där får du hjälp att dels sköta datalagret men även en rutin som fyller dina textboxar med 1 rad kod..Visa den valda posten i översta
Jag har försökte att visa den valda posten i första raden i DropDownList osv... min kod ser ut så här:
Public Sub hamta_typ(ByVal index As Integer)
Dim koll As Double
Dim indexnr As Integer
If Not Page.IsPostBack Then
Try 'provar kommando innanför try-satsen och visar ev. felmeddelande
Dim SQL As String = "SELECT kateID,kategori FROM annons_kategori"
Call Koppling()
Dim myCommand As New OdbcCommand(SQL, MyConnection)
Dim reader As OdbcDataReader 'En läsare/hämtare
myCommand.CommandType = CommandType.Text
reader = myCommand.ExecuteReader()
DropDownlist1.Items.Clear()
koll = -1
While reader.Read
Dim kateID As Integer = reader.Item("kateID")
Dim liItem As ListItem = New ListItem(reader.Item("kategori"), reader.Item("kateID"))
DropDownlist1.Items.Insert(0, liItem)
koll = koll + 1
If (kateID = index) Then
indexnr = koll
End If
End While
DropDownlist1.DataBind()
DropDownlist1.SelectedIndex = indexnr
reader.Close()
MyConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
Jag får inte till och få den valda posten i första raden i DropDownlist?????????????????
Sv: Visa den valda posten i översta
If (kateID = index) Then
indexnr = koll
End If
kolla om inte den går fel för den överstyr ju i vissa lägen vad du anger i sub-rutinen ....Sv:Visa den valda posten i översta
"kolla om inte den går fel för den överstyr ju i vissa lägen vad du anger i sub-rutinen ...."
Har du något förslag hur jag skriver om det.Sv: Visa den valda posten i översta
Kolla på rutinen fill-listbox
Shared Function GetConnectionString() As String
' returnerar olika connectionsträngar beroende på om man kör i debugläge
' eller inte. Kör man i debug används den lokala databasen på utvmaskinen.
If InStr(HttpContext.Current.Request.Url.ToString, "localhost") > 0 Then
GetConnectionString = ConfigurationSettings.AppSettings("ConnectionStringLocal")
Else
GetConnectionString = ConfigurationSettings.AppSettings("ConnectionString")
End If
End Function
'
' Fyller en listbox och väljer en post om det går
'
Shared Sub FillListBox(ByVal objName As DropDownList, ByVal index As String, ByVal Querystring As
String, Optional ByVal firstItemText As String = "-- Välj --")
Dim rst As SqlClient.SqlDataReader = ReturnDataReader(Querystring)
' lägg till ett förstaval
objName.Items.Clear()
objName.Items.Add(New ListItem(firstItemText, 0))
' läs upp resterande val
While rst.Read
objName.Items.Add(New ListItem(rst(1), rst(0)))
End While
' markera vald post om det går
Try
If index > 0 And objName.Items.Count > 1 Then
objName.Items.FindByValue(index).Selected = True
End If
Catch ex As Exception
objName.SelectedIndex = 0
Finally
rst.Close()
End Try
' stäng och frigör
rst.Close()
rst = Nothing
End Sub
' används för select-frågor för att snabbt stänga
Shared Function ReturnDataset(ByVal query As String) As DataSet
Dim conn As New SqlConnection(GetConnectionString)
Dim adapter As New SqlDataAdapter
Dim dataset As New DataSet
' anslut och försök utföra arbetet
Try
adapter.SelectCommand = New SqlCommand(query, conn)
adapter.Fill(dataset)
Catch ex As SystemException
' om fel uppstår
Throw New ApplicationException("SQL: Kan inte köra frågan:" & Err.Description & query)
End Try
' returnera data om vi kan
Return dataset
End Function
Public Shared Function ReturnDataReader(ByVal sqlquery As String) As SqlDataReader
' observera att connection ligger öppen i denna rutin och tar minne
' i servern, men håller tråden öppen och pooling verkar bli bättre
' Create Instance of Connection and Command Object
Dim myConnection As SqlConnection = New SqlConnection(GetConnectionString)
Dim myCommand As SqlCommand = New SqlCommand(sqlquery, myConnection)
' Mark the Command as a SPROC
myCommand.CommandType = CommandType.Text
Try
' öppnar anslutningen och exekverar frågan
myConnection.Open()
Dim result As SqlDataReader = myCommand.ExecuteReader _
(CommandBehavior.CloseConnection)
' returnerar resultatet
Return result
Catch ex As DataException
' adderar info till loggfilen
' meddelar felet
Throw New SystemException("Fel vid anrop av sql-fråga: " & sqlquery & "-" & Err.Description)
End Try
myCommand = Nothing
myConnection = Nothing
End Function
' Kör ett query innehållande sp-namn och dess parametrar
' returnerar ingenting
Shared Sub ExecuteQuery(ByVal sqlquery As String)
' endast för ins/upd/del
' Skapa instans av en Connection samt Command Object
Dim connectionstring As String = GetConnectionString()
Dim Con As New SqlConnection(connectionstring)
Dim cmd As SqlCommand
' öppnar connection
Con.Open()
' skickar in datat
cmd = New SqlCommand(sqlquery, Con)
' kör sp:n eller sql-satsen
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
Throw New SystemException("Fel vid anrop av sql-fråga: " & sqlquery & "-" & Err.Description)
End Try
' stänger och frigör objekten
Con.Close()
cmd = Nothing
Con = Nothing
End Sub