a ver si podeis solucionar mi duda.
cuando entre a trabajar en una empresa (editorial) habia u programa hecho en
vb6 q usaban 20 operadoras y la bd es acces97 y estaba en un pc servidor.
todos los ordenadores son xp menos el servidor q es win 2000.
cuando llegue querian hacer mejoras en esa aplicacion q basicamente consiste
en consultar colegios, hacer pedidos...en definitiva consultar y modificar
la bd acces y mostrar la informacion a traves de textbox, datagrids y
listview
en vez de seguir con esta aplicacion en vb6 , como no la habia hecho yo y
cada uno entiende lo q hace, empeze a hacerla de nuevo con el microsoft
visual studio .net 2003 y asi he hecho las mejoras incluso otra aplicacion q
consiste en ampliar la q tenia para tratar los temas de facturacion,
albaranes control de stock, etiquetas en crystal, control de acceso de las
operadoras etc
el problema llego cuando se ponen todas en la aplicacion ya q si la comparo
con la del vb6, esta del .net es bastante mas lenta. al hacer alguna
modificacion, se actueliza el listview o lo q sea y eso lleva unos segundos.
sobretodo el formulario principal q ponen un codigo de un colegio y se
tienen q llenar 4 datagrids y un registro(10 textbox)
entonces ahora me planteo como es posible si se supone q el .net tiene
bastantes mejoras y teoricamente va bastante mas rapido, como es en mi caso
totalmente contrario. ya se q lo ideal seria hacer la bd sql pero eso de
momento no es posible.
puede ser q no haya exprimido el .net y q no haya hecho la aplicacion de la
forma mas eficaz? (la verdad es q es mi primera aplicacion)
y otra cosa:
puede ser tb la forma de conexion a la bd? yo lo q hago es conectar a la bd
una vez entro en la aplicacion. eso lo he puesto en un modulo donde pongo
mas funciones como las vaiables globales, el llenar un datagrid...etc
no se si seria mejor y si se puede hacer la conexion en cada formulario y/o
solo conectar las tablas q te hicieran falta para ese form. no se si esto
sera posible.
esto ultimo me vendria bien para q las tablas referentes a la facturacion
solo se conectaran a la bd en la 2º aplicacion, ya q al generar la factura
tengo q ir guardando todas las lineas de un listview y cuesta bastante si
son muchas.
queria saber, aparte de opiniones sobre pq puede ir mas lento en vb .net q
envb6, si es posible q al hacer la conexion no influya en todas las tablas
para asi ir mas rapido o si para cada cambio q se haya de la bd solo se
active/conecte la tabla en cuestion en vez de toda la bd hago casi todas las
coenxiones usando estas funciones(os las pongo x si sabeis mejoras o si
se puede cambiar lo de la conexion), ya q casi todos los ejemplos q veo son
usando sql
Gracias!
Imports System.Data.OleDb
Sub main()
Path1 = System.IO.Path.GetFullPath("\\Equipo3\C\DYLR\")
ArchivoDatos = path1 & "dyla.mdb"
CadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &
ArchivoDatos & ";Persist Security Info=False"
Dim frm As New principal
frm.ShowDialog()
End Sub
'funciones
Public Sub Gestionar(ByVal sql As String)
Dim conexion As New OleDb.OleDbConnection
conexion.ConnectionString = CadenaConexion
conexion.Open()
Dim Comando As OleDbCommand = New OleDbCommand
Comando.Connection = conexion
Comando.Transaction = conexion.BeginTransaction
Try
Comando.CommandText = sql
Comando.ExecuteNonQuery()
Comando.Transaction.Commit()
Correcto = True
Catch Errorcito As Exception
Comando.Transaction.Rollback()
Correcto = False
MsgBox("Operación no realizada", MsgBoxStyle.Critical, "Error de
la aplicación")
Finally
conexion.Close()
conexion.Dispose()
End Try
End Sub
Public Sub CrearMiOleDbCommand(ByVal myExecuteQuery As String, ByVal
myConnectionString As String)
Try
Dim myConnection As New OleDbConnection(myConnectionString)
Dim myCommand As New OleDbCommand(myExecuteQuery, myConnection)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
myConnection.Dispose()
Catch ee As Exception
MessageBox.Show(ee.Message)
End Try
End Sub
Leer las respuestas