Potrebna pomoc-greska u VS.Net kodu pri punjenju dataset

profesionalac-bgd

Zainteresovan član
Banovan
Poruka
232
Kada pokusam da izvrsim ovaj kod, pojavi se greska:

An unhandled exception of type 'System.NullReferenceException' occurred in ORDINACIJA.exe

Additional information: Object reference not set to an instance of an object.

Kod je sledeci:

Private Function wmPrijava(ByVal A_User As String, ByVal A_Pass As String) As DataSet
Dim M_cn As New Data.SqlClient.SqlConnection
Dim M_upit As New Data.SqlClient.SqlCommand("", M_cn)
Dim M_da As New System.Data.SqlClient.SqlDataAdapter
Dim M_ds As New DataSet

Try
'M_cn.Open()
M_cn.ConnectionString = "data source=Milan-PC\SQLEXPRESS;initial catalog=ordinacija; integrated security=True; user id=Milan; Password=; workstation id=Milan-PC; packet size=4096"
M_upit.CommandText = "select IDLekar from dbo.Lakar where UserName= ' " & A_User & " ' and Password= ' " & A_Pass & " ' "
M_da.SelectCommand = M_upit

M_da.SelectCommand.CommandTimeout = 0
Try
M_da.Fill(M_ds, "Lekar")
Return M_ds
Catch ex As Exception
End Try

Catch
Throw
Finally
M_cn.Close()
End Try

End Function


A LINIJA GDE SE JAVLJA GRESKA JE KOD PUNJENJA DS: M_da.Fill(M_ds, "Lekar")



Moze li neko da pomogne?
 
Ovde ti je pogresan red poteza:
'M_cn.Open()
M_cn.ConnectionString = "data source=Milan-PC\SQLEXPRESS;initial catalog=ordinacija; integrated security=True; user id=Milan; Password=; workstation id=Milan-PC; packet size=4096"
M_upit.CommandText = "select IDLekar from dbo.Lakar where UserName= ' " & A_User & " ' and Password= ' " & A_Pass & " ' "
M_da.SelectCommand = M_upit

Open treba da ide na kraju, ne mozes da otvaras konekciju ka bazi pa da tek onda definises connection string.
 
Ne znam, ja ne radim u VB, a i koja ti je ovo verzija kad koristis DataAdapter? Od VS2005 pa na ovamo je uveden TableAdapter za komunikaciju sa bazom. Drugo, proveri ovaj connection string, koju autentikaciju koristis? Ako je Windows autentikacija, kao sto kaze ono "integrated security=True", onda nema svrhe definisati user i pass, sto bi bilo potrebno da ne SQL Server authentication. A i pass ti je prazan string, sto nisam siguran da moze.
 
Mrzim samo da pametujem, al moram u ovoj prilici. Ovaj kod je pisan na nacin da je bash pogodan za bugove svih vrsta i ekstremno ce biti tezak za odrzavanje (pravljenje adaptera & otvaranje konekcije pri svakom upitu). Savetujem autoru da potrosi malo vremena (ako nije bash opterecen rokovima) i da napise / nadje na netu neki data layer za .NET / SQL i da koristi stored procedure. Manje ce ga glava boleti (first hand experience :dash:).
 

Back
Top