Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/09/2011, 09:55
Korreca
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Tetbox en ASP.NET

Me.conexion.ConnectionString = "Data Source=192.168.1.200,1433;Initial Catalog=Develop;User Id=Help_Desk;Password=rtc-2011;"
query = ("select Mail from HelpDesk_Users where department_id = " & CType(Me.DropDownList_solicitante.SelectedValue, Integer))

Dim cmd As New SqlCommand(query, conexion)
Dim dr as SQLDataReader
Try
conexion.Open()
dr = cmd.ExecuteReader
While dr.read
Me.TextBox_mail.Text = dr(0)
end While
dr.close()

Catch ex As Exception
MsgBox("Ha habido problemas al intentar establecer conexion" & ex.Message, MsgBoxStyle.Critical)
Finally
If Not dr.IsClosed() then dr.Close()
If conexion.State = ConnectionState.Open then conexion.Close()
End Try



Explicación:
No concatenes con "&" la cadena de conexion si no hace falta, es crear objetos string a lo tonto.
department_id suena a identificador, del tipo int, numérico. Si pones '' le pasas un valor string. Error
DropDownList_solicitante.Text esa propiedad no existe, lo que tu quieres es Me.DropDownList_solicitante.SelectedValue
De que te sirve crear comando si luego creas cmd
cmd.Parameters.AddWithValue("DropDownList_solicita nte", TextBox_mail.Text) ??? si no sabes que es no copies y pegues sin saber, no tienes ningun parametro DropDownList_solicitante en la query
Si creas un SqlDataAdapter y luego quieres rellenar un DataSet (no el DataTable que quieres rellenar tu), deberás llamar a cmd.ExecuteNonQuery antes.
Ese MsgBox es de la época de VbScript y solo funcionará en IE, mirate la clase RegisterStartupClientScript para añadir un alert javascript (crossbrowser)
Nunca le muestres el mensaje de error al usuario, por ahí entran a joder
Incluye siempre un Finally y cierra ahí el datareader y la conexión, si hay un errar antes de cerrarla y no haces eso se te queda abierta.


Y lo más importante..... NUNCA NOS PEGUEIS LOS DATOS REALES DE CONEXION A VUESTRAS BASES DE DATOS, es solo sentido común.

Saludos!