Visual Basic.NET - TableAdapter

 
Vista:

TableAdapter

Publicado por fany (25 intervenciones) el 08/08/2007 15:39:56
Hola a todos, me estoy volviendo loca tratando de solucionar este problema. Bien, aquí os pongo el código:

Dim cadena As String
cadena = "SELECT titulo,iddocumentos,notacambio,MAX(revision) AS rev,comentario,descripcioncambio,motivocambio,formato,codigodoc,fechadist " & _
" FROM(documentos, notascambio) WHERE (num_nc = notacambio) AND (num_nc <> '') and num_nc='" & cbNC.Text & "'" & _
" GROUP BY titulo, iddocumentos, notacambio, comentario, descripcioncambio, motivocambio, formato, codigodoc, fechadist"

Dim cmd As New Odbc.OdbcCommand
cmd.CommandType = CommandType.Text
cmd.CommandText = cadena

Me.NotaCambio_DocumentosTableAdapter1.Adapter.SelectCommand = cmd
Me.NotaCambio_DocumentosTableAdapter1.Adapter.Update(DataSet21)

Me.CrystalReportViewer1.ReportSource = Me.CrystalReport11
Me.CrystalReport11.SetDataSource(DataSet21)
Me.NotaCambio_DocumentosTableAdapter1.Fill(DataSet21.NotaCambio_Documentos)

Me.CrystalReportViewer1.Visible = True
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TableAdapter

Publicado por OliBeer (391 intervenciones) el 08/08/2007 16:21:54
Dim cadena As String
cadena = "SELECT titulo,iddocumentos,notacambio,MAX(revision) AS rev,comentario,descripcioncambio,motivocambio,formato,codigodoc,fechadist " & _
" FROM(documentos, notascambio) WHERE (num_nc = notacambio) AND (num_nc <> '') and num_nc='" & cbNC.Text & "'" & _
" GROUP BY titulo, iddocumentos, notacambio, comentario, descripcioncambio, motivocambio, formato, codigodoc, fechadist"

Dim cmd As New Odbc.OdbcCommand
cmd.CommandType = CommandType.Text
cmd.CommandText = cadena

Me.NotaCambio_DocumentosTableAdapter1.SelectCommand = cmd
Me.NotaCambio_DocumentosTableAdapter1.Fill(DataSet21)

Me.CrystalReportViewer1.ReportSource = Me.CrystalReport11
Me.CrystalReport11.SetDataSource(DataSet21)

'No recuerdo si tienes que ponerle un DataBind() al CrystalReport :P

Me.CrystalReportViewer1.Visible = True

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TableAdapter

Publicado por FANY (25 intervenciones) el 09/08/2007 09:34:19
Sigue sin haceme caso, mi codigo es el siguiente:


Dim cadena As String
cadena = "SELECT titulo,iddocumentos,notacambio,MAX(revision) AS rev,comentario,descripcioncambio,motivocambio,formato,codigodoc,fechadist " & _
" FROM(documentos, notascambio) WHERE (num_nc = notacambio) AND (num_nc <> '') and num_nc='" & cbNC.Text & "'" & _
" GROUP BY titulo, iddocumentos, notacambio, comentario, descripcioncambio, motivocambio, formato, codigodoc, fechadist"

Dim cmd As New Odbc.OdbcCommand
cmd.CommandType = CommandType.Text
cmd.CommandText = cadena

Me.NotaCambio_DocumentosTableAdapter1.Adapter.SelectCommand = cmd
Me.NotaCambio_DocumentosTableAdapter1.Fill(DataSet21.NotaCambio_Documentos)

Me.CrystalReportViewer1.ReportSource = Me.CrystalReport11
Me.CrystalReport11.SetDataSource(DataSet21)
Me.CrystalReport11.Refresh()
Me.CrystalReportViewer1.Visible = True

El DataBind() en VS2005 no existe, pongo CrystalReport11.DataBind() y da un fallo porque ese miembro no existe.
Despues hay que poner "" Me.NotaCambio_DocumentosTableAdapter1.Fill(DataSet21.NotaCambio_Documentos)"" y no lo que pusiste tú ""Me.NotaCambio_DocumentosTableAdapter1.Fill(DataSet21)"" (a lo mejor te equivocaste)
En resumen, que no funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TableAdapter

Publicado por OliBeer (391 intervenciones) el 09/08/2007 16:42:55
Hola!!

Deberias de ponerme todo el código, no veo dónde declaras tu DataAdapter, no veo la cadena de conexión, y qué error es el que te está arrojando? Ya revisaste que el Dataset no esté vacío?

Yo hago lo siguiente, sólo que ésto es con un procedimiento almacenado, pero no creo que tenga que ver, como tú lo haces es con CommandType.Text

Public Shared Function EjecutarProcedimiento(ByVal strProcedimiento As String, ByVal arrParam() As SqlParameter) As DataSet
Dim myDataAdapter As New SqlDataAdapter
Dim mySelectCommand As New SqlCommand
Dim ds As New DataSet

Dim scnConexion As New SqlConnection(strConexion)
scnConexion.Open()

myDataAdapter.SelectCommand = mySelectCommand

mySelectCommand.CommandText = "[" & strProcedimiento & "]"
mySelectCommand.CommandType = System.Data.CommandType.StoredProcedure
mySelectCommand.Connection = scnConexion
mySelectCommand.Parameters.AddRange(arrParam)

myDataAdapter.Fill(ds)

Return ds
End Function

Creo que en la parte de acceso a datos no está el problema, creo que es en lo del Viewer, pero aquí está un código, yo lo hago de ésta manera y funciona correactamente

Dim CristalReportRRepCatBancos As new RepCatBancos 'Se hace la INstancia del reporte

Dim datatableRepCatBancos As new DataTable ' se declara un datatable, porque con dataset no funciona

datatableRepCatBancos = (wsReportes.ConsRepCatBancos()).Tables(0) ' aqui se hace la consulta, en mi caso lo hice con un WebService, el .Tables(0) es para pasar el dataset a datatable
CristalReportRRepCatBancos.SetDataSource(datatableRepCatBancos)
Me.CrystalReportViewer1.ReportSource = CristalReportRRepCatBancos

Saludos y de dices como te jue... :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TableAdapter

Publicado por fany (25 intervenciones) el 10/08/2007 09:11:53
Los tableadapter que yo utilizo los hice en el diseñador de un dataset. y después en el formulario simplemento añado el control de la ficha que se crea con los componentes del proyecto. Entonces lo que estaba intentando hacer es modificar el texto de la consulta de un tableadapter ya creado en el diseñador de un dataset, y este ya está unido al informe de Crystal Report, pues cree el informe con el asistente.

En el código que me pasas no entiendo muy bien lo que haces:
datatableRepCatBancos = (wsReportes.ConsRepCatBancos()).Tables(0) , el wsReports no se lo que es, ¿a que te refieres con eso?
Y otra cosa, Function EjecutarProcedimiento, esta funcion no veo para que la creas porque no la usas para nada.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TableAdapter

Publicado por fany (25 intervenciones) el 10/08/2007 10:36:08
Oye, muchas gracias, que ya me salio. Aquí dejo mi código. No me daba cuenta de lo que tratabas de hacer, pero ahora ya lo entendi.

Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click

Dim miInforme As New CrystalReport1 'Se hace la INstancia del reporte
Dim datatableInforme As New DataTable ' se declara un datatable, porque con dataset no funciona
datatableInforme = (EjecutarProcedimiento(cadena)).Tables(0) ' aqui se hace la consulta, en mi caso lo hice con un WebService, el .Tables(0) es para pasar el dataset a datatable
miInforme.SetDataSource(datatableInforme)
Me.CrystalReportViewer1.ReportSource = miInforme
Me.CrystalReportViewer1.Visible = True

Me.CrystalReport11.SetDataSource(datatableInforme)
Me.CrystalReportViewer1.Visible = True

End Sub

Public Shared Function EjecutarProcedimiento(ByVal strConsulta As String) As DataSet ', ByVal arrParam() As Odbc.OdbcParameter) As DataSet
Dim myDataAdapter As New Odbc.OdbcDataAdapter
Dim mySelectCommand As New Odbc.OdbcCommand
Dim ds As New DataSet

Dim scnConexion As New Odbc.OdbcConnection
scnConexion.ConnectionString = cadenaCon
scnConexion.Open()
myDataAdapter.SelectCommand = mySelectCommand

mySelectCommand.CommandText = strConsulta
mySelectCommand.CommandType = CommandType.Text
mySelectCommand.Connection = scnConexion
'mySelectCommand.Parameters.AddRange(arrParam)

myDataAdapter.Fill(ds)
Return ds
End Function

No usas el dataset para presentar los datos en el informe, sino que lo llenas con un DataTable.
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar