Bonjour les développeurs!
J'ai un ptit probleme tout bizzard :
J'ai créé un web service qui contient plusieurs méthodes faisant chacune différente requête sur une base de donnée hébergée sur un sql server 2005 en local.
Ce qui est trés bizzard ce que les fonctions qui retournent un chiffre (un integer par exemple), dans le cas d'une requete du type "SELECT Count..." ne pose aucun probleme, pas de bug, et le résultat retourné est cohérent.
Mais avec quasiment le meme code, une fonction qui retourne un Dataset plante et m'affiche une erreur 500 (internal server error)!
Voici le code d'une requete qui marche et le code de celle qui marche pas :
Celle ci ne marche pas :
[CODE]
<WebMethod()> Public Function get_appointment() As DataSet
ouvrir_base()
dt = New DataTable("LA_TABLE_APPOINTMENT")
Dim requete As String
requete = "SELECT * FROM AppointmentDetails"
Dim sql_cmd As SqlCommand
sql_cmd = New SqlCommand(requete, sql_conn)
Dim adapter As SqlDataAdapter
adapter = New SqlDataAdapter(sql_cmd)
adapter.Fill(dt)
Dim ds As DataSet
ds.Tables.Add(dt)
'Dim toto As Collection = New Collection
'toto.Add(dt.Rows)
Return ds
deconnecte()
End Function
[/CODE]
Alors que celle ci marche :
[CODE]
<WebMethod()> Public Function get_max_appointment_id() As Integer
Dim id_appointement As Integer
ouvrir_base()
dt = New DataTable("LA_TABLE_APPOINTMENT")
Dim requete As String
requete = "SELECT max(appointmentID) FROM AppointmentDetails"
Dim sql_cmd As SqlCommand
sql_cmd = New SqlCommand(requete, sql_conn)
Dim id_appointement_obj As Object = sql_cmd.ExecuteScalar
If IsDBNull(id_appointement_obj) Then
id_appointement = 0
Else
id_appointement = CInt(id_appointement_obj)
End If
Return id_appointement
End Function
[/CODE]
Pour info j'utilise :
VStudio.NET2003
IIS5.1
SQL server express 2005