Keskustelut - Visual Basic / C# / .NET - ASP.Net - Tietokannan taulun kentän arvo dropdownlist:iin


adalmiina 21:06 18.5.06 
Miten saadaan SQL tietokannan taulun ID kentästä viimeksi annettu arvo dropdownlistiin ?
Tuntuis, et heleppo nakki, mut eipä ainakaan näin onnistanut. Oisko kellään idiksiä ja koodin pätkiä??

'******************************'

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If Not Page.IsPostBack Then

Dim SQLConn As SqlConnection
Dim strConnection As String
Dim strSQL As String

''******************************************************************************************

SQLConn = New SqlConnection("server=localhost;uid=us;pwd=me;database=Kuku")
SQLConn.Open()

strSQL = "Select TyonumeroID from Tyonumerot"

Dim sql8 As String = "Select Max(TyonumeroID) FROM Tyonumerot"

With drpTyoNro
.DataTextField = "TyonumeroID"
.DataValueField = "TyonumeroID"
.DataSource = GetTyonumero(sql8).Tables("Tyonumerot").DefaultView
.DataBind()
End With


End If
End Sub
'*******************************''
Erroreita tulee:

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object
weicco 06:13 19.5.06 
Ei tarvitse koodata riviäkään. Raahaa SqlDataSource suoraan formille käytä databindingia.
adalmiina 15:46 19.5.06 
Oh,en oikein ymmärtänyt... SqlDataSource suoraan formille käytä databindingia? Tarkoitatko formin html-puolelle? Tarkennatko hieman.
eitkonen 21:01 19.5.06 
Mikä GetTyonumero?

koitas
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If Not Page.IsPostBack Then

Dim SQLConn As SqlConnection
Dim strConnection As String
Dim strSQL As String

''******************************************************************************************

SQLConn = New SqlConnection("server=localhost;uid=us;pwd=me;database=Kuku")
SQLConn.Open()

Dim sql8 As String = "Select Max(TyonumeroID) AS MAKSIMI FROM Tyonumerot"

dim dtableMaksimi as new DataTable
dim SqlKasky as new SqlCommand(sql8, SQLConn)
dim SqlAdapteri as new SqlDataAdapter(SqlKasky)

SqlAdapteri.Fill(dtableMaksimi)

With drpTyoNro
.DataTextField = "MAKSIMI"
.DataValueField = "MAKSIMI"
.DataSource = dtableMaksimi
.DataBind()
End With

SQLConn.Close()

End If
End Sub


Toinen vaihtoehto on tosiaan SqlDataSource, joka siis itsessään sisältää peritaatteessa SqlConnectionin, SqlCommandit ja SqlDataAdapterit tiedon hakemiseen/näyttämiseen/päivittämiseen yms.
editoitu: 17:58 20.5.06
adalmiina 17:57 20.5.06 
Kitz! Lähettämäs koodi toimi.. GetTyonumero oli tällänen.

'*************************************************

Public Function GetTyonumero(ByVal sql As String) As DataSet

Try
Dim conn As SqlConnection
conn = New SqlConnection("server=localhost;uid=us;pwd=me;database=Kuku")

Dim da As New SqlDataAdapter(sql, conn)
Dim ds As New DataSet
conn.Open()
da.Fill(ds, "Tyonunmerot")
conn.Close()
Return ds
Catch ex As SqlException
Throw
End Try
End Function