Vamos a analizar una situación particular que se produce al integrar las bases de datos, ya sean Ms Access, Sql Compact, Sql Server, o cualquier otra que pueda integrarse al Visual Studio
Cuando se desarrollan aplicaciones de escritorio, WinForm o WPF y a estos proyectos se le agrega una db, puede que las actualizaciones de datos no impacten sobre el archivo que se visualiza en el “Solution Explorer”.
Nota: si bien el ejemplo del articulo estará basado en Sql Compact (.sdf) la solución planteada aplicaría a otras base de datos como ser Ms Access (.mdb, .accdb), Sql Server (.mdf), etc
Problema
Cuando un conectionstring se define usando el nombre de la db o |DataDirectory| para especificar la localización del archivo de base de datos, en ambos casos se hace referencia a la carpeta donde se encuentra ejecutándose el .exe
string connstring = "Data Source=|DataDirectory|Contactos.sdf;Persist Security Info=False;";
Al usar este tipo de connection string es bastante común ver desarrollos en donde la db se encuentra integrada al Visual Studio.
Si se está ejecutando desde el Visual Studio la carpeta, por defecto, donde compila y deja los archivos resultantes será el \bin\Debug del proyecto, es allí donde la aplicación espera que se encuentre la base de datos.
No hay que engañarse, los cambios que realicen actualización a la db no serán efectuadas sobre el archivo que se visualiza integrado al VS (el que se visualiza en la imagen anterior), sino que las modificaciones se realizaran sobre la copia que crea el Visual Studio en la carpeta \bin\Debug
Como se observa, el Visual Studio creo una copia de la db en la carpeta donde compila, es por eso que .exe y .mdb están juntos, es más cuando se detenga la ejecución y se inicie nuevamente una nueva copia será efectuada pisando los datos previos.
Por lo tanto, si luego de ejecutar la aplicación desde el VS, la aplicación realizo actualizaciones en los datos, al detenerla y realizar doble click en el archivo de base de datos que está integrado en el “Solution Explorer” para poder trabajarlo desde el “Server Explorer”, no se visualizara ningún cambio.
Al usar el “Show Table Data” no habrá cambios que visualizar
Sera necesario usar la opción
Para poder acceder a al db que se copió en el \bin\Debug y al hacer bloque click en esta y verla en el Server Explorer allí si estarán las actualizaciones realizaras en la ultima ejecución.
Nota: recuerden que al volver a ejecutar desde el Visual Studio la db que se encuentra en la carpeta \bin\Debug será reemplazada por una nueva copia
Esta situación solo se manifiesta si se ejecuta desde el Visual Studio, cuando se lleve el .exe a la pc del usuario esta situación no se presentara, la aplicación se ejecuta directamente sin intermediarios que realice la copia de la db a una carpeta de compilación (apunto a que no esta el Visual Studio en medio creando una carpeta donde ubicar los archivos resultantes necesario para la ejecución).
Solución
Si se quiere evitar esta situación y hacer uso de la misma db que esta integrada al proyecto, el primer paso será deshabilitar la copia que realiza el VS, para ello se debería ir a las propiedades del archivo
Y allí cambiar la opción a “Do not copy”
Y luego se deberá modificar el string de conexión indicando la ruta completa el archivo de la db, usar solo el nombre o |DataDirectory| ya no será valido (porque no se copiara el archivo a la carpeta de compilacion)
string connstring = "Data Source=C:\...\Contactos.sdf;Persist Security Info=False;";
Conclusión
Si bien esta característica que aporta el Visual Studio al realizar una copia automática del archivo de base de datos a la carpeta de compilación podría ser útil en algunas situaciones, (como ser aquellas donde se espera datos inicializados para realizar pruebas), pero hay otras donde no es útil, por eso existen opciones que se pueden cambiar para deshabilitar esta acción.
Al implementar la solución mencionada logramos referenciar la db que se encuentra integrada al proyecto.
Hola Leandro, si queremos agregar un instalador, con esta opción ya no es necesario crear una ActionData ? Automáticamente esta dentro del proyecto, con sus respectivos procedimientos almacenados, no es así ? Gracias por compartir!!
ResponderEliminarhola Mauro
ResponderEliminarno sabria decirte que es un ActionData, pero imagino apuntas a si el Primary Object de un setup project incluiria la db de forma automatica, hasta donde entiendo deberia ahcerlo
recuerda que los procedure estan definidos en la db en un archivo .mdf (si es que usas sql server), por lo que si instalas la aplciacion y llevas este archivo los procedure estaran alli
saludos
buenasss... hola amigo tengo un problema y espero me puedas ayudar. soy nuevo en c#, he desarollado una aplicacion windows form de escritorio para mi trabajo con sql server 2008. He creado mi ejecutable, pero cuando intento correr el programa en la pc del cliente me aparece un error 28 que dice que la instancia de sql no ha sido especificada o que no ha podido establecer conexion. he instalado mi sql server 8 en la pc del cliente, pero no se ha que se deba este error. ¿es posible que sea al conexion string cuando hice mi codigo? o que necesita habilitar alguna conexion remota? ayuda por favor....
EliminarLeandro: A lo que me refiero con el ActionData es a esto:
ResponderEliminarhttp://msdn.microsoft.com/es-es/library/49b92ztk(VS.80).aspx
Claro, pero vos aclaraste que la ruta de adjuntar la BD hay que cambiarla
string connstring = "Data Source=C:\...\Contactos.sdf;Persist Security Info=False;";
entonces al colocarla en el instalador que ruta se tendría que poner ?
Gracias!!
hola Mauro
ResponderEliminarla ruta la cambias para adaptarla al VS, cuando estas ejecutando desde este, como bien habras leido comente que esta situacion no se genera en un ambiente productivo
cuando prepares el instalador puedes volver a poner el nombre de la db, o |DataDirectory| si asi lo deseas, porque al ejecutar desde el .exe no se genera ninguna copia
esto por supuesto si es que la db y el .exe estaran en la misma carpeta
saludos
Hola Tocayo, Obvio mi nombre es Leandro Mendez, Te Escribo porque me gustaria tomar una especie de curso desde 0 contigo si esta dentro de tus posibilidades me gusta mucho la programación. mi correo es: leandro.mendez288@gmail.com, por este correo podrias enviarme los temas, gracias!!
EliminarLeandro me has dicho: "cuando prepares el instalador puedes volver a poner el nombre de la db, o |DataDirectory| si asi lo deseas, porque al ejecutar desde el .exe no se genera ninguna copia"
ResponderEliminarEl |DataDirectory|, lo debo poner en el DataSource o en el AttachDbFilename ??
Porque la configuracion me queda asi:
<add name="Conexion" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aff1.mdf;Integrated Security=True;User Instance=True"
En el instalador me tendria que quedar asi ?? :
<add name="Conexion" connectionString="Data Source=|DataDirectory|\aff1.mdf;Integrated Security=True;User Instance=True"
No se si entiende a lo que voy.. Espero no molestar.. Gracias.
hola Mauro
ResponderEliminarsi entiendo
pero me parece que te estas confundiendo el "Data Source" es identico sea que ejecutes desde el VS o que lleves la aplicacion a la pc del usuario, porque el sql server debes estar presente en ambos casos
sigues usando el .\SQLEXPRESS no importa en que ambiente este
lo unico que cambia el la ruta del AttachDbFilename
saludos
Hola Leandro tengo una consulta:
ResponderEliminarEstoy haciendo un sistema de control de asistencia flexible para trabajadores para capturar el registro de Entrada y actualizacion de la Salida estoy utilizando RadioButtonList .Obvio que utilizo base de datos en donde ya está almacenado mis trabajadores.
Mi consulta es como hago la verificacion para que el trabajador al momento de realizar doble vez la entrada me indique que debe marcar una salida=?
Hola Leandro, no encontré otra forma de contactarme contigo, me gustaría que guiaras en este problema:
ResponderEliminarNecesito hacer un reporte con crystal Report, pero necesito hacerlo asíncrono. Es decir mandar a generar y que cuando finalice la creación me informe mediante un mensaje en algún div de la máster page, para poder descargarlo o algo así. Desde ya muchas gracias.
hola Kely
ResponderEliminarpodrias usar un control de validacion para verificar si hay seleccion
How to Use RequiredFieldValidator For Radio Button in ASP.NET
igualmente se trata de un radio button, podrias definir uno seleccionado por defecto, de esa forma uno a lo sumo siempre estar marcado
saludos
hola Marcelo
ResponderEliminarel tema de la generacion no lo veo complicado, el tema que si se complica es la notificacion al cliente ya que de por si el server no se puede comunicar con el cliente
podrias usar SignalR
pero es medio raro como se podria hacer eso con un reporte, ya que por lo general se usa para enviar info al cliente o alguna actualizacion
saludos
Estimado leandro quisiera por favor si podrias informarme si alguna ves has tocado el tema de webservices con asp.net en capas conectada a base de datos.. sql
ResponderEliminarAtte
Angel
hola Angel
ResponderEliminarla verdad no he planteado ningun ejemplo que involucre servicio
tengo pensado varios articulos sobre el tema, pero no he tenido tiempo de plasmarlos en codigo como para publicarlo
saludos
Muchas Gracias. Por la respuesta. Saludos
ResponderEliminarEstimado, me tome el atrevimiento de enviarte un mail, ya que buscando siempre por internet llego a tu blog.. en distintas busquedas de c#. te cuento que soy nuevo.
ResponderEliminary te escibo para ver si me podes dar una mano.
Si lo deseas te puedo enviar una breve descripcion de mi problema.. ya q en tu web no encontre ningun articulo.
Gracias de antemano.
Saludos Cordiales.
Diego Biasatti.
hola Diego
ResponderEliminarsi seguro puedes escribirme al mail de contacto que figura en el blog
si puedo ayudar con la pregunta, con gusto lo hare
saludos
Hola leandro mi nombre es jorge te felicito por todo el conocimiento que aportas a traves de este blog eres grande
ResponderEliminaramigo me encuentro en una situación de confusiones grande he seguido mucho tu blog y creo eres el indicado para consultar conocimiento ya que soy novato quiero desarrollar una aplicación winforms en la que debo utilizar una base de datos pero he aquí mi primera confusión que es mejor utilizar la base de datos desde servidor o integrarla a la aplicación pues veo trabajas con ambas formas y no se como integrar un mdf a mi proyecto, mi segunda confusión es si trabajar en capas con entity framework o de que manera me recomiendas por que encuentro que hay varias y ahora mi tercera y mas grande tengo que generar reportes pero estos reportes tienen un formato especifico que es que deben ser en bloc de notas y no tengo idea de como lograr eso salvo una vaga idea de hacerlo con un xml
bueno amigo esos son mis dolores de cabeza ya he perdido tiempo y aun no tengo nada pero espero con tu colaboración aclarar mis dudas y sacar esto a flote gracias de antemano y espero tus respuestas NOTA: perdón por escribir tanto pero es desesperación jejeje mi correo es macoictk@gmail.com.
hola jose
ResponderEliminarsi la db y la aplciacion van a estar en pc separadas no incluyan en el instalador de la aplicacion la base de datos
para la aplciacion crea un setup project simple
para la db usa el instalador que ya trae esta por defecto, imagino usas sql server, en ese caso usa este para poner el servicio en la otra pc
despues solo define el connection string en el .config de la aplocacion cliente para que apunte a esa otra pac
recuerda si usas la version express de sql server que debes habilitar el servicio para las conexiones remotas ademas de validar que el firewall de windows no este bloqueando la conexion
saludos
Muy buen artículo, claro y conciso, pero para un novato como yo, me gustaría que explicaras como y donde hay que cambiar la cadena de conexión, pués no soy capaz de encontrar dicho lugar. Muchas gracias.
ResponderEliminarhola Jesús
ResponderEliminarla cadena de conexion deneria estar definida en el archivo de configuracion de nombre app.config
aqui Archivos de Configuración - Una introducción (1/3)
explcio como podrias ahcerlo para definir y tomar desde codigo la cadena de conexion
recuerda que al compilar se renombra a: NombreAplicacion.exe.config
saludos
Hola, Leandro, soy nuevo en esto de la programación, he visto que todos tienen el mismo problema que yo en esto del empaquetado de la aplicacion, he hecho varios procedimientos a cerca de esto, mis dudas son: Cuando creas el nuevo proyecto de intalacion se agrega el resultado del proyecto,¿Quisiera saber si ahi tambien se agrega el .mdf?, otra es ya lo hice asi, pero solo consulta, y al realizar un transacion(registrar,mod,eliminar) no hace nada de eso ¿Como prodria solucionar este problema?. de antemano gracias...
ResponderEliminarQue tal Leandro, hice una entrada en el foro y me gustaria saber por favor tu opinion al respecto. Es en cuanto a base de datos, probablemente cadena de conexion, ojala puedas revisarlo. Gracias
ResponderEliminarhttp://social.msdn.microsoft.com/Forums/es-ES/aspnetmvces/thread/9cd25b8e-3a5b-4b04-934b-785ef2422095
Hola Leandro, una consulta. Al guardar la BD dentro de la carpeta de la aplicación, existe alguna manera de ocultar/proteger la bd para que no puede ser vista o pueda ser eliminada.
ResponderEliminarSi no me equivoco, cuando haces el instalador, se puede indicar que archivo queres que no se muestre en la carpeta de instalación. gracias.
hola Madara
ResponderEliminarsi el archivo mdf esta como output del proyecto prindipal que toma el setup project deberia incluirlo
pero ojo que incluya el mdf no quiere decir que tambien incluya el sql server
el sql server deberias instalarlo de forma separada
lo que no entendi es lo de al realizar la transaccion no hace nada, cuando es que no hace nada? despues de instalarlo en la pc del usuario ? no obtienes tampoco ningun error?
saludos
hola AlfredMeza
ResponderEliminarla verdad hubiera recomendado lo mismo que Juan comenta alli
si solo tienes acceso por ftp, y nada mas, lo unico que queda es contactar al tecnico que si tenga acceso y pueda validar
- que el servicio del sql server este correcto
- podrias comentarle el connection string que defines para que lo valide, a veces el sql server se declara en un puerto diferente y esto hay que espcificarlo, pero solo quen lo configuro podria decirlo
o sea si solo te dan el ftp estas ciego como para poder realizar verificaciones de proque no se puede conectar a sql server
saludos
hola Si Señor
ResponderEliminarhasta donde se ocultar un archivo no se puede salvo que le cambies el atributo de ese archivo en las propiedades
igualmente si el usuario especifica en windows para ver archivos ocultos podra ver que esta alli
podrias quitar de la instalacion el archivo, pero bueno si haces eso ya no lo tendras para poder usarlo
saludos
Saludos amigo,una pregunta mi base de datos la cree en sql server managent 2005 y mi proyecto estaba en visual 2012 pero lo migre a visual 2012 y en mi ejecutable me dice que la base de datos es solamente de lectura,acaso debo de instalar otro servidor para la BD?? saludos
ResponderEliminarhola
ResponderEliminarno validaste si el .mdf esta como readonly, pero a nivel de archivo
tambien valida si donde pones el mdf se puede escribir, cuando el servicio de sql no puede escribir pone la db como solo lectura
para cambiar el atributo quizas debas detener el servicio de sql server
saludos
hola leandro hice todo lo dices, pero me dice ya existe una base de datos con ese nombre y el error sale en cnn.open
ResponderEliminarhola Yusary
ResponderEliminarsuele suceder que a veces la db quede adjunta al servicio
pero si reinicias el servicio de sql server deberia quitarse
tambine podrias probar cerrar el VS y eliminar el contenido de la carpeta \bin\Debug del proyecto
saludos
hola q tal tengo un problema ya termine mi aplicacion en vb 2010 y utilizo una bd en sql 2008 ya adjunte la base de datos como dices en tu tutorial al correr la aplicacion dentro del visual estudio funciona bien se conecta a la base de dtos inserta datos actualiza elimina edita doto bien pero al instalarla en un equipo diferente ya hecho el instalador me sale un error al kerer conectarme con la bd me marca un error de conexion de q el servidor no estaba acesible o el nombre de la instancie no se encontro.. no se aq se deba esto.. espero y me puedad ayudar gracias....
ResponderEliminarhola EDWIN
ResponderEliminarla db que usas es un .mdf que pones en la carpeta App_Data, o la db esta integrada al servicio de sql server ? recuerda que si la usas desde archivo el sql express debe estar instalado localmente
la db esta local en el equipo donde pones el iis o se accede remoto
validaste que el connection string que defines tenga los datos correctos ?
saludos
Hola Leandro
ResponderEliminarHe estado leyendo tus comentarios y son muy buenas tus aportaciones....pero tengo un pequeño problema......tengo mi proyecto en mi pc y todo bien....pero al pasar el proyecto a mi lap (instalando previamente todo lo necesario) lo ejecuto y todo bien hasta el momento en que quiero visualizar los reportes (están hechos con reportviewer) no se visualizan :( que puede estar pasando????
hola Mariana
ResponderEliminarpor lo que comentas se trata de un reporte de Reporting Service en modo local, o sea tienes un .rdlc
si es asi como es que asignas datos a este reporte? usas un dataset tipado o quizas una coleccion de un clase que tu defines?
has instalado en esa otra pc los redistribuibles de reporting service ?
Microsoft Report Viewer 2010 Redistributable Package
saludos
Fantástico el aporte que haces que bueno encontrar a personas con tanto conocimiento con la voluntad de compartirlo, muchas gracias, y yo también tengo una duda que agradecería si puedes ayudarme hace ya unos años aprendí a hacer que las conexiones de una aplicación funcionaran a cualquier PC que la llevara sin usar el común Local Host, lamentablemente por falta practica olvide como lo hacia, si talvez conoces otra forma de conectar sin usar lo del Local Host te lo agradecería, gran trabajo felicitaciones y de antemano gracias...
ResponderEliminarhola HAMZ
ResponderEliminarla base de datos que usas es sql server?
si es asi solo debes definir el connection string indicando el nombre o ip del equipo que tiene instalado el motor de base de datos
http://www.connectionstrings.com/sql-server-2008
solo cambias ese localhost por el nombre del equipo al cual te quieres conectar, por supuesto valida que el firewall de windows no bloquee la conexion
la db deberia estar integrada al servicio de sql server en ese servidor
saludos
Qué tal Leandro?
ResponderEliminarTu blog me ha servido de mucho. Te comento que realizado un proyecto siguiendo muchas de tus guías: comunicación desacoplada entre formularios, archivos de configuración y arquitectura n-tier. Además, quise probar con una base de datos que no conocía: SQLite. Todo funciona ok pero tengo un problema, a pesar de que creé una carpeta específica para alojar la base de datos, veo que no es ahí donde realmente se están guardando los datos. Es decir, en la estructura del proyecto tengo una carpeta Data que contiene el archivo miBD.sqlite y en el archivo de configuración tengo 'DataSource=/Data/miBD.sqlite'; sin embargo, cuando trato de usar el archivo miBD.sqlite encuentro que está vacío. El sistema está instalado en Win7 pero las pruebas las hago desde WinXP. ¿Alguna idea de donde se ha almacenado mi archivo realmente?.
Saludos
hola GrupoX
ResponderEliminarper esta db de sqlite esta integrada al VS, puedes verla en el siolucion explorer?
porque si es asi seguramente se este copiando al \bin\Debug del proyecto, lo has validado ?
o sea que este sucediendo con esta db lo mismo que comento en este articulo
saludos
Maestro Tuttini:
ResponderEliminarMuchisimas gracias por la informacion de las Base de Datos integradas. Tenía un gran problema con eso pero con su explicación me saco de un gran aprieto. Aprecio mucho como usted comparte su conocimiento y espero que siga asi.
De todo corazon muchas gracias
saludos
Hola Leandro, tengo una consulta acerca de las Bases de Datos integradas a un proyecto. Utilizo Visual Studio 2012, creé una aplicación y la base de datos desde el mismo Visual... Instale este sistema en un servidor, pero cuando las máquinas clientes quieren utilizarlo, me surge el error de que la Base de Datos no permite conexiones remotas... Cómo habilito este acceso a mi Base de Datos? se puede? Desde ya, te agradezco cualquier ayuda!!!
ResponderEliminarhola Unknown
ResponderEliminarpero la idea es usar la db lcoal en la pc del usuario o desde un servidor ?
porque si es desde el servidor el archivo de la db deberias adjuntarlo al servicio del sql server, ademas de revisar estos pasos:
Enable Remote Connection on SQL Server 2008 Express
verifica tambien si el firewall de windows no bloquea el acceso al puerto del sql server
saludos
Hola Leandro, muchas gracias por tu siempre desinteresado apoyo.
ResponderEliminarAgradezco me puedas ayudar con este inconveniente que tengo: Desarrolle una aplicación local por capas, y en la capa de acceso a datos esta la base de datos local, en modo de depuración funciona perfectamente, pero cuando cuando se instala en otra maquina, genera error porque no encuentra la BD, agradezco tu valiosa colaboración Leandro.
hola carlos_yy
ResponderEliminarla base de datos que usas es Sql Server ?
revisaste el connection string si esta correcto? quizas definiendo en este la ruta fisica fija al archivo de la db
podrias tambien integrar la db al servicio de sql server y usarlo simplemente con el nombre y no como archivo, solo deberias realizar un attach del mdf al servicio de sql server
saludos
hola leandro mira que necesito adjuntar la bd al instalador osea para al momento del instalador la bd quede en el programa instalado y no de ningun error por el odbc trabajo con acces xfa como quedaria la direccion o codig de conexion
ResponderEliminargracias......
hola noel
ResponderEliminarla base de datos que usas es sql server ? porque si es asi me suena raro que uses odbc, la verdad no es nada aconsejable
deberias usar el proveedor de sql server, o sea SqlConnection, SqlCommand, etc
la db si la usas como mdf la puedes adjuntar como archivo al instalador
saludos
hola leandro la base de datos que utilizo es en acces y la conexion que utilizo es esta: conexion.ConnectionString = "DSN=nombre"
ResponderEliminarpero como hacerla para adjuntar esa base de datos en el instalador se necesitara algun codigo o como xfa gracias....
hola noel
ResponderEliminarno se que tipo de instalador estas creando, quizas sea un Setup Project
si es ais podrias poner la db como un archivo, es mas si la db esta dentro del proyecto incluido como un item mas que visualizas en el solution explorer deberia icluirse de forma automatica
saludos
hola Leandro
ResponderEliminarme puedes mandar un ejemplo de como hacerlo mi correo es daddyramos90@gmail.com te lo agradecere. xfa gracias
hola noel
ResponderEliminarpero lo explico en este mismo articulo, o sea la db Ms Access integrarla al VS como aqui planteo con el sdf, es de la misma forma solo incluyes el mdb al proyecto
solo que en este caso si dejale la opcion de Copy Always para que la incluya en el instalador
saludos
hola y la conexion solo seria esta o lleva mas codigo
ResponderEliminarstring connstring = "Data Source=C:\...\Contactos.sdf;Persist Security Info=False;";
esq ai estoy confundido porq tengo esto oara conectarme
ResponderEliminarPublic conexion As New ADODB.Connection
Sub abrir()
conexion.ConnectionString = "DSN=nombre"
conexion.Open()
pero nose si deberia incluir este
string connstring = "Data Source=C:\...\Contactos.sdf;Persist Security Info=False;";
tambien para al momento de la instalacion no de problemas..
disculpa tants preguntas xfa
saludos....
hola noel
ResponderEliminarel tema es que si defines
DSN=nombre
debes configurar un DNS en el panel de control de la PC
es mas no deberias usar en .net la libreria de ADODB, porque es de VB6, y se supone que debes usar ADO.NET o sea el OleDbConnection, OleDbCommand etc
saludos
leandro que tengas un buen dia, tengo una consulta, estoy implementando un proyecto en visual 2010 y uso la base de datos Sql Server 2008 R2 que trae consigo la aplicacion de Visual, recien estoy entrando en esto de la pogramacion y no entiendo muchas cosas,
ResponderEliminar1- Porque ustedes hablan que en Sql la extencion es SDF o MDB y cuando yo cree la base de datos dice dbo
2- tengo que crear un instalador para poder copiar mi proyecto a otra computadora y que trabajemos en linea con la base da datos creada
3- En Mi computador tengo el Sql por ende la base de datos, puedo almacenar la base de datos a otra computadora que no tenga sql y asi utilizarla como servidor o estrictamente debe estar en mi computadora.
Finalmente cuando cree mi proyecto la cadena de conexion es
Dim Cadena As String = "Server=CREDITOS-EH-07\SQLEXPRESS;Initial Catalog=Gestion_Clientes;Integrated Security=true"
y me funciona bien en mi maquina, para usar el proyecto en otras computadoras tengo que cambiarlo...???
Mil disculpas por tantas preguntas a la vez.....espero con ansias tu respuesta
Saludos y muchas gracias de antemano
Disculpa Leandro otra consulta al tener la aplicacion en red los usuarios pueden ingresar datos y hacer consultas al mismo tiempo sin crear problemas o no es posible...??? de ser posible en la PC que se utiliza como servidor hay que hacer algo adicional
ResponderEliminarhola Jose
ResponderEliminar1-
las extensiones que mencionas no son de una db sql server
sdf es de Sql Compact y mdb es de Ms Access, son otras base de datos
para sql server al extension es .mdf
2-
la base de datos las ubicaras en un lugar centralizado? si es asi solo es cuestion de definir el connection string de forma correcta para localizar esa db
El instalador no incluye la db solo la aplicacion
3-
pudes usarlo desde donde necesites, pero recuerda que si usas sql server express requieres que se habiliten las conexiones remotas y tambien el firewall de windows
Enable Remote Connection on SQL Server 2008 Express
despues cambias el connection string para apuntar a la pc que defines como servidor de base de datos
saludos
hola Jose
ResponderEliminarasi es pueden conectarse varios usuario sin tener problemas, por supuesto si dos o mas acceden al mismo registro habra un tema de concurrencia, en donde un usuario podria pisar lo que modifique el otro
pero eso se resuelve con un TimeSpan
saludos
Mil gracias Leandro por su pronta respuesta, si me deja un poco confundido la parte en la que menciona que mi base de datos no es de Sql y como le comente es la que trae VS ULTIMATE 2010 Sql Server 2008 R2, no se si por eso la extencion es dbo
ResponderEliminarhola Jose
ResponderEliminarhasta donde se sql server no define ninguna extensio dbo, si usa extensiuon .mdf (es el archivo de datos) y .ldf (es el archivo de log), estos podrias encontrarlos en la carpeta \DATA del servicio de sql server
lo que si define como "dbo" por defecto es el nombre del schema de la db, por lo que puedes poner SELECT * FROM dbo.NombreTabla
o sea dbo no es una extension del archivo fisico que se crea
saludos
Leandro buen dia, quero integrar una base de datos de Sql express 2008 a un proyecto de visual studio que quiero tener en red con varios clientes, usando como servidor mi PC la actual cadena de conexion es la siguiente y ni me funciona cuando quiero hacer conexion de una computadora de cliente:Dim Cadena As String = "Server=CREDITOS-EH-07\SQLEXPRESS;Initial Catalog=Gestion_Clientes;Integrated Security=true"
ResponderEliminary una ultima consulta si me aclaras un poco cuaales son los elementos que debe incluir una cadena de conexion, por ejemplo cual es la diferencia entre ;Integrated Security=true y ;Integrated Security=false
Gracias de antemano por tu apoyo
hola Jose
ResponderEliminarno entendi, si te funciona con la cadena de conexion que muestras entonces cual seria el problema ? por lo que comentas puedes conectarte desde otros cliente a tu pc
http://www.connectionstrings.com/sql-server-2008/
el uso de Integrated Security defin la seguridad de forma integrada con windows, si estas en un dominio de windows Server se pueden usar el usuario de windows con el cual te autenticas a la pc como login automatico hacia la base de datos
o sea la autenticacion es directa con el usuario que se autentica en la pc
si anulas esta seguridad entonces aplicar la de sql server, deberias definir usuario y password
saludos
Gracias Leandro entendi muy bien lo de Integrated Security, ahora mi consulta es que no puedo conectar mi aplicacion al instalarla en otros computadores, ya hice lo de Client Protocols y todos los deje en Enable el TCP/Ip Names Piped Via y aun no me funciona, ahora bien no se si me falta hacer algo con el Firewall y alli si no puedo porque esta bloqueado....me ayuda por favor.....muchas gracias
ResponderEliminarhola Jose
ResponderEliminarel firewall es una de las principales causas que podria estar afectando la conexion
sino habilitas el puerto donde esta escuchando el sql server no te podras conectar remoto
vas a tener que consultar con alguien encargado de la infraestructura de la red para que pueda habilitarlo y agregar la exception que habilite el puerto de sql server
saludos
Hola Leandro,
ResponderEliminarUna consulta, este método que das también aplica para un aplicación WinForm de VS 2013 con una conexion a BD de SQL Server 2008 R2?.
Ya finalize una aplicación, y estaba intentando agregar un nuevo item existente en el proyecto(según vi en un tutorial de como crear un ejecutable con VS 2013 y sql server 2008 R2), el .ldf y .mdf de mi base de datos, sin embargo me sale Acceso Denegado, sin más. He intentado buscarle solución en google y no encuentro ningún indicio del problema que tengo. Y en base a eso llegue aquí para ver si me podrías hechar una mano. Gracias.
Edit:
ResponderEliminarYa logré adjuntar los archivos a mi proyecto, pero casi manualmente puesto que desde la carpeta MSSQL\DATA no podia. Lo que hice fue copiar el .mdf y el .ldf de MSSQL\DATA al escritorio, desde el escritorio si logre adjuntarlos al proyecto pero surgen estas 2 cosas...
1. Al intentar abrir los archivos me sale lo siguiente: El archivo de base de datos no es compatible con el actual instancia de SQL Server.
2. Los archivos no son adjuntados en el bin\debug como en tu ejemplo, si no se ubican en la carpeta dónde se encuentran todos los forms.
PD: No Estoy seguro si es la forma correcta de adjuntar los archivos .ldf y .mdf al proyecto, sin embargo no me quedaba de otra pues no podía hacerlo directamente de la carpeta de SQL SERVER.
hola Miguel
ResponderEliminarla version de VS que uses no deberia afectar la tecnica es la misma, poner el mdf y ldf en la carpeta del proyecto, ver los archivo ocultos y usar la opcion de include in proyect, son esos 3 pasos deberia ubicar la db integrada al VS
el mensaje de incompatibilidad no es raro que aparezca si es que ese mdf lo creaste con una version diferente de Sql Server, quizas deberias attachar la db directo al servicio para poder editarla, esto me paso bastante con bases de datos que tenia y queria trabajar con sql server 2012
poner la db en sql server es tan simple como usar en el sql server management studio la opcion de attach
solo se copiaran a la carpeta bin\debug cuando compiles o ejecutes, valida que la propiedad del mdf este como en esta imagen
imagen
saludos
Hola Leandro,
ResponderEliminarTengo una duda cuando dices :
poner el mdf y ldf en la carpeta del proyecto, se puede hacer con copiar los .ldf y .mdf y pegar, o tengo que hacerlo desde el VS?
ver los archivo ocultos y usar la opcion de include in proyect, no entendí eso de ver los archivos ocultos exactamente para qué?, y dónde está la opción de include in proyect?, en VS cuando doy click derecho al .ldf o .mdf en las opciones sale más bien exclude from project, me imagino que ya están incluidos ciertos, no?
Espero puedas ayudarme con estas dudas... Gracias.
G
Hola Leandro,
ResponderEliminarLo del include in project ya entendi a lo que te referias, estaré muy agradecido si me resuelves las otras 2 dudas que tengo,
otra consulta más, al momento de intentar abrir el .mdf para verlo en el Server Explorer me sigue saliendo el mensaje de incompatibilidad, apesar de haber hecho el atach que me dijiste que haga. No entiendo porque... Algun consejo? Gracias...
hola Miguel
ResponderEliminarpero si realizas el attach ya no necesitas del server explorer administra la db directo desde el Sql server management studio
las db son incompatibles porque las creaste con versiones diferentes, quizas pudiendo extraer el script que cree la estructura podrias crear un nuevo mdf y ejecutar ese script para el el mdf sea creado directo con la version actual que usas de sql server
igualmente si te dejo realizar el attach olvidate del server explorer y administra la db integrada al servicio
saludos
hola leandro disculpa la molestia pero me gustaria saber como puedo hace que mi proyecto adjunte automaticamente su base de datos la cual la cree en mysql. si me podrias poner un ejemplo seria de gran ayuda
ResponderEliminarhola adanV
ResponderEliminarhasta donde se mysql no tiene esta capacidad de adjuntar dinamicamente la db al servicio
vas a tener que poner la db en el servicio de mysql para poder conectarte a esta, desde el VS dinamicamente no creo que puedas hacerlo
si usarias sql server esta si tiene esa capacidad porque la db asi fue pensada
saludos
que tal Leandro.
ResponderEliminarcomo puedo hacer para que mi cadena de conexion funcione en otra pc que tiene instalado
el windows 7(aca ya instale los requisito previos como el .net framework, sql server 2008, windows installer lo que se descargan cuando creas un instalador y tambien adjunte el .mdf y .ldf tambien configure conexion remota y el firewall). mi cadena de conexion es esta que funciona en mi pc cn.ConnectionString = "data source=.;integrated security=true;initial catalog=practicar" probe con esta cadena 'cn.ConnectionString = "integrated security=true;data source=Intel-PC;initial catalog=practicar" en la otra pc(windows 7) y nada me sale este error
(Error relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server. No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas. (provider: Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión con SQL Server))
lo que pasa es que yo no quiero instalar el programa sql server 2008 en la otra pc(windows 7) para que funcione, quiero que el mismo instalador funcione con la bd adjuntada al proyecto. esto es posible o no? osea que mi aplicacion y mi bd esten en la misma maquina(windows 7) sin tener que instalar todo el programa sql server 2008. de antemano muchagracias
hola C01ful
ResponderEliminarno intentaste crear un archivo .udf
basicamente crea un archivo de texto y lo renombras cambiandole la extension a udf
con este si lo ejecutas podras probar la conexion a la db, para poder validar si desde esa pc puedes conectarte de forma remota sin necesidad de instalar el management studio
saludos
que tal leandro
ResponderEliminary como creo un archivo de texto .udf(que un bloc de nota), y que tiene que estar dentro de este archivo de texto toda la base de dato.
el archivo de texto .udf tengo que adjuntarlo tambien al proyecto del instalador?
y como pongo mi cadena de conexion para la otra pc(window 7)
cn.ConnectionString = "integrated security=true;data source=Intel-PC;initial catalog=practicar"
Hola leandro¡¡
ResponderEliminary como se cambiaria el connectionstring luego de cambiar a la opcion "Do not copy" ya que en propiedades de la base en el soluttion explorer me aparece en tono gris y no se puede modificar, desde ya gracias¡¡
hola Carlos
ResponderEliminarel archivo udf es solo para poder definir los datos de la conexion y realizar el test sin tener que instalar nada en la pc del usuario, pero pudiendo validar si puedes conectarte o no
no lo tiene que integrar a ningun proyecto
el connection string no lo estas definiendo en el App.config ? porque lo pones fijo en el codigo
esa pc con win 7 se esta conectando de forma remota al servicio de sql server? es un sql express?
saludos
hola Matias
ResponderEliminarno veo que tiene que ver el "Do not copy" con el server explorer,
son cosas separadas
si en el .mdf que tienes en el proyecto realizas doble click deberia abrirse en el server explorer
pero no tiene nada que ver como administras la db a como esta se copia a la carpeta de compilacion cuando ejecutas
saludos
que tal Leandro
ResponderEliminarla conexion la ago en el codigo no en el app.config pero cual es la diferencia ?
no es remota la conexion yo quiero que el instalador de mi aplicacion y la base de dato se instalen en la pc (window 7)
sin tener que instalar el programa sql server, es sql expres
pero cuando pongo la cadena de conexion me dice que no encuentra el servidor apesar de que adjunto la base de dato en el proyecto
cn.ConnectionString = "integrated security=true;data source=Intel-PC;initial catalog=practicar"
Hola nuevamente y gracias por responder. yo me refiero a mi base de datos de proyecto cuya propiedad conectionstring no se puede modificar( aparece en gris). Todo esto haciendo referencia a tu solucion propuesta en el tutorial de esta publicacion que propone usar la opcion DO NOT COPY Y CAMBIAR EL CONECTIOSTRING para poder usar la base original del proyecto y no la copia que realiza visual.
ResponderEliminarLo que sucede es que al ejecutar el proyecto y realizar las consultas no me arroja resultados, ya que Los datos cargados como bien explicaste estan en la copia que se ubica en BIN/DEBUG o sea al ejecutar no puedo manipular los datos cargados. En otras palabras, puedo trabajar BD copia que es la que tiene los datos???. Nuevamente gracias¡¡¡
hola Matias
ResponderEliminarpero porque no puedes modificar el connection string? se supone que este lo defines en el archivo de configuracion .config
es alli dodne se define el connection string por eso no entiendo porque aparece en gris
si puede cambiar el connection string podrias apuntar a la db que esta en el proyecto y no a la que se copia al bin\Debug
saludos
Hola de nuevo, mil gracias por tu tu respuesta y tu tiempo.ya resolvi ese dilema que me aquejaba, todo debido a la inexperiencia otra vez mil gracias. Saludos¡¡¡¡
ResponderEliminarHola Leandro
ResponderEliminarTengo unas preguntas sencillas, espero me puedas ayudar, es necesario tener instalado cualquier versión de SQL en la pc donde se va instalar el proyecto echo en Visual Basic con base de datos SQL server?, si es asi, que otra base de datos pudiera usar sin instalar nada en la pc donde trabajarian con el proyecto?, la aplicación fue diseñada con VB.net 2012 y SQL server 2012
hola Hector
ResponderEliminaren realidad depende, si el mdf lo creaste con una version sql 2012, es logico que deba al menos ser esa version o superior, con sql 2008 podrias tener problemas
sino quieres instalar nada podrias usar Sql Compact o quizas SqlLite
saludos
buen dia hermano como agrego la opcion de reporting a vb 2012 ya que no me aparece en la opcion de elementos comunes cuando quiero agregar un nuevo elemento
ResponderEliminarhola EDWIN
ResponderEliminarde casualidad usas una version Express de VS 2012 ?
porque si es as esta no dispone de reporting, deberias cambiar a una version Professional o superior
saludos
holaaa
ResponderEliminarutilizo VS 2012 ULTIMATE ya instale el reportViewer pero sigo con el mismo problema no tengo la opcion de reporting
hola EDWIN
ResponderEliminarpero no puedes ver la opcion
imagen
si vas a la opcion de Reporting deberias poder crear un .rdlc ese es un reporte de reporting service en modo local
o buscabas como crear un reporte integrado al servicio ? porque si es asi vas a tener que instalar el Sql Server express con las advanced tools lo cual incluye el template para reporting, pero esto es si quieres integrar el reporte al servicio de sql server
saludos
hola hermano no me aparecia la opcion de Reporting instale el Cristal Reports y ahora si sale la opcion Reporting pero no esta le opcion para Informes locales .rdlc solo se añadio la opcion de Crystal :-(
ResponderEliminarhola EDWIN
ResponderEliminarla verdad esta raro lo que comentas, teniendo el VS ultimate la opcion de reporting deberias tenerla
saludos
Hola, buen día tenga señor Tuttini. Me ha dado gusto ver los aportes que hace usted para la comuna de programadores que estamos aprendiendo. Bueno, iré al grano: Tengo una aplicación de escritorio hecha con VB.net, acceso a una B.D. en Access y además se hace uso de CrystalReports. Hace unos días estuve pensando en cómo solucionar varios problemas, se los enumero:
ResponderEliminar1.-¿Cómo preparar la B.D desde el asistente para crear el instalador?
2.-¿Cómo hacer para que al momento de crear mi B.D. se pueda cambiar el string connection (actualizarse) a la nueva ruta de mi B.D.?
3.-Al crear la BD es necesario introducir un dato de administrador en una tabla llamada usuarios, para que no se interactue directamente con la BD(osea que se abra access y luego la BD).
4.-¿Cómo ocultar esa BD?
5.-¿Cómo dambiar el datasource de mi formulario de crystal reports, ya que al cambiar la ruta del sistema, me genera un error?. ¿Se podría hacer al crear un instalador?
Espero que no sea una molestia. De antemano le agradezco la atención que se tomo para leerme y poder ayudarme dentro de sus conocimientos. Muchas gracias.
hola Brayan
ResponderEliminarbueno son varias las preguntas
la db Ms Access en definitiva es un archivo por lo que podrias incluirlo como un file mas dentro del instalador, no se que instalador estas realizando quizas sea un Setup project
si defines el connection string en un archivo de configuracion App.config despues de instalar podrias editarlo con el notepad para cambiar el connection string
pero si usas
Datasource=|DataDirectory|\nombredb.mdb
esto es automatico y toma la ruta donde esta el .exe
si pones la db en la misma carpeta lo toma directo
en el connection string poderias definir con que usuario y password se accede aunque seria bueno quizas encriptar esa seccion asi no se puede visualizar esta info
ocualtar la db lo veo un poco dificil, quizas podrias ponerle otra extension inventada, aunque hagas esto si usas la db en el connection string lo seguira reconociendo
saludos
en mi caso la base de datos no se genero por defecto en la carpeta bin por que sera?
ResponderEliminarhola juan
ResponderEliminarimagino la db puedes verla en el solution explorer no? o sea esta integrada
si es ais podrias validar las propiedades "Copy to autput directory" con el valor que indique que debe realizar la copia a la carpeta de compilacion
saludos
hola leandro gracias por atenderme,
ResponderEliminarpero la bd tampoco se refleja en solution explorer, que me falta?
gracias de nuevo
La verdad es que me gustaria saber si me ayudas con un paso a paso pa instalar mi aplicacion en otro pc pues en este pc me funciona bien pero no logro instalarlo en el otro pc por favor dime que debo hacer la base de datos es sql server 2008
ResponderEliminarGracias de antemano
ResponderEliminaresta es mi cadena de conexion
ResponderEliminarProtected Function conectado()
Try
cnn = New SqlConnection("data source=(local);initial catalog=dbventas;integrated security=true")
cnn.Open()
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
hola juan
ResponderEliminarpero esa cadena de conexion refleja que la db esta integrada al servicio de sql server
o sea no tiene nada que ver lo que yo explico en este articulo
deberias ir al Sql Server management studio y administrar la db desde el servicio de sql server
saludos
osea que al instalar la aplicacion en otro pc tendria que instalar la base de datos aparte?
ResponderEliminarhola juan
ResponderEliminarpor lo que detectos del connection string que usas la db esta integrada al servicio de sql server
puedes poner la db en la misma pc pero el .mdf lo debes adjuntar al servicio
no estas utilizando un attach dinamica con el connection string que defines
es mas realiza la prueba de conectarte a la db con el management studio
saludos
Gracias Leandro, no he logrado hacerlo pero de igualmanera Gracias
ResponderEliminarBuenas noches Leandro estoy tratando de hacer un ejecutable en visual basic 2013 con bases de datos de Access 2013 pero me manda un error te lo describo:
ResponderEliminarConsulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración
Just-In-Time (JIT) en lugar de a este cuadro de diálogo.
************** Ensamblados cargados **************
mscorlib
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5472 (Win7SP1GDR.050727-5400)
Código base: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
SUBTEJU
Versión del ensamblado: 1.0.0.0
Versión Win32: 1.0.0.0
Código base: file:///C:/Users/CARMEN/AppData/Local/Apps/2.0/YLCQH0A3.PKZ/PQPGRL0G.ZZY/subt..tion_b3345c863a9288f0_0001.0000_7c5e9d1c8edd727f/SUBTEJU.exe
----------------------------------------
Microsoft.VisualBasic
Versión del ensamblado: 8.0.0.0
Versión Win32: 8.0.50727.5420 (Win7SP1.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5468 (Win7SP1GDR.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5476 (Win7SP1GDR.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5476 (Win7SP1GDR.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5420 (Win7SP1.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Data
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5459 (Win7SP1GDR.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Data.DataSetExtensions
Versión del ensamblado: 3.5.0.0
Versión Win32: 3.5.30729.5420 built by: Win7SP1
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Data.DataSetExtensions/3.5.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll
----------------------------------------
System.Windows.Forms.resources
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.5420 (Win7SP1.050727-5400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll
-----------------------------------
Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
se enviará al depurador JIT registrado en el equipo
en lugar de controlarlo mediante el cuadro de diálogo.
Espero tu ayuda gracias
hola FREDDE
ResponderEliminarpero alli no se visualiza ningun mensaje de error, deberoas haber un Message del exception que describa porque fallo
podrias implementar un control global de errores para capturar los problemas
[Winforms] Control global de Errores
y asi capturar el mensaje del fallo, quizas no se este pudiendo conectar a la db
saludos
Hola Leandro,
ResponderEliminarSabes que hace tiempo que he estado haciendo proyectos en Visual Studio y nunca me propuse terminarlos en una aplicación de escritorio.
Hoy, estoy empezando a hacer una y para que sea facil para los clientes pensaba que la mejor manera es integrando una BD al proyecto como tu muestras.
Ahora, estoy teniendo problemas para conectarme al archivo aparentemente. Intente con tu connection string pero nada...intente con otras y tampoco...siempre recibo el siguiente error.
Excepción:Se detectó: "El contador de rendimiento solicitado no es un contador personalizado, se debe inicializar como ReadOnly." (System.InvalidOperationException)
Se detectó una System.InvalidOperationException: "El contador de rendimiento solicitado no es un contador personalizado, se debe inicializar como ReadOnly."
Hora: 25/03/2014 0:23:24
Subproceso:[8980]
Te pido por favor que me des una mano con esto ya que sin la conexión a la BD no puedo seguir trabajando.
Te dejo mi correo, skype o lo que sea ni necesitas...
Muchas gracias!
Este comentario ha sido eliminado por el autor.
ResponderEliminarhola Elena
ResponderEliminarla verdad no sabria ni como ayudarte porque no mencionas siquiera que base de datos estas utilizando, que error de conexion recibes
si la db la accedes localmente o de forma remota
si se trata de sql server si es una distribucion express
para poder orientar se necesita mas datos
saludos
la base de datos es de sql y la hice localmente y el proyecto me funciona muy bien asi, pero entonces para hacer el instalador me lleve la base de datos visual asi como aparece aqui en el blog, me muestra las relaciones en el dataset y los campos que tenia localmente, pero cuando ejecuto el proyecto me dice el error "Especificación de autorización no válida"
ResponderEliminarla conexion de la base de datos la tengo en una clase
Localmente lo utilizo asi:
conexion.ConnectionString = "Provider=SQLOLEDB.1;Data Source=ELENAMAGGIE-PC;Integrated Security=SSPI; Initial Catalog=PRESUPUESTOS_PROMONEY"
Con la base de datos en visual la uso asi:
conexion.ConnectionString = "Provider=SQLOLEDB.1;Data Source=C:\..\PRESUPUESTOS_PROMONEY.mdf;Persist Security Info=False"
No se si tenga algun error aqui o el error sea en otra parte porque primero me marco error en permisos pero ya que agrege que aceptara los permisos fue que me marco el error qe te menciono
espero y ya me entiendas un poco mejor
Public Class Clase_BD
ResponderEliminarDim conexion As New OleDb.OleDbConnection
Dim adaptador As New OleDb.OleDbDataAdapter
Dim tabla As New DataTable
Dim cant_reg As Integer
Public Sub New(ByVal Seguridad_Windows As Boolean)
If Seguridad_Windows = True Then
'conexion.ConnectionString = "Provider=SQLOLEDB.1;Data Source=ELENAMAGGIE-PC;Integrated Security=SSPI; Initial Catalog=PRESUPUESTOS_PROMONEY"
conexion.ConnectionString = "Provider=SQLOLEDB.1;Data Source=C:\..\PRESUPUESTOS_PROMONEY.mdf;Persist Security Info=False"
Else
conexion.ConnectionString = "Provider=SQLOLEDB.1;Data Source=192.168.1.7;Persist Security Info=True;User ID=Telena;password =ele93MAGGIE18;Initial Catalog=PRESUPUESTOS_PROMONEY"
End If
End Sub
Public Sub New(ByVal ServidorSQL As String, ByVal Usuario As String, ByVal Contrasena As String, ByVal BD As String)
conexion.ConnectionString = "Provider=SQLOLEDB.1;Data Source=" & ServidorSQL & ";Persist Security Info=True;User ID=" & Usuario & ";password =" & Contrasena & ";Initial Catalog=" & BD
End Sub
Public Sub New(ByVal ServidorSQL As String, ByVal BD As String)
conexion.ConnectionString = "Provider=SQLOLEDB.1;Data Source=" & ServidorSQL & ";Integrated Security=SSPI;Initial Catalog=" & BD
End Sub
Public Sub Actualizar_BD(ByVal Instruccion_SQL As String)
adaptador = New OleDb.OleDbDataAdapter(Instruccion_SQL, conexion)
tabla.Clear()
cant_reg = adaptador.Fill(tabla)
End Sub
Public Function Regresar_Tabla()
Return tabla
End Function
Public Function Cant_Registros()
Return cant_reg
End Function
End Class
Esta es la clase que utilizo
hola Elena
ResponderEliminarpero estas usando sql server, porque veo en el codigo las clases de OleDb
porque no usas las de sql server
o sea SqlConnection, SqlCommand, etc
Sql server tiene sus propias librerias optimizadas para esta db, no uses oledb
https://www.connectionstrings.com/sql-server-2008/
la idea es que definas el Server y uses el DataSirectory si es que la db esta junto al archivo mdf
Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;
saludos
Si muchas gracias ya solucione ese problema, ahora tengo otro al hacer el instalador con visual basic
ResponderEliminarLo que pasa que me funciona muy bien el instalador en una computadora de windows 7 pero me llevo en los requistos sql server, pero al instalarlo en windows 8 me marca error de compatibilidad por el sql server, trate de hacer el instalador con installshield y me marca el mismo error
si no incluyo en los requisitos al sql funcionara correctamente la conexion a la base de datos?
hola Elena
ResponderEliminarpero estas instegrando el sql server dentro del instalador de la aplicacion?
yo la verdad no lo aconsejaria, deja el sql server que tiene su propio instalador por fuera del instalador de la aplicacion
asi puedes controlar la instalacion del sql server que en principio solo se deberia instalar una unica vez
es ams que pasa si en win 8 instalas desde el instalador del propio sql server, tambien falla?
saludos
Hola Leandro, consultarte como puedo hacer para rellenar un combobox y textbox con datos de un dataset en wpf.
ResponderEliminarhola leandro tengo una duda.
ResponderEliminarya lei todo el blog y sinceramente no entiendo lo de la cadena de conexion, el detalle es que quiero hacer una aplicacion instalable con base de datos pero no se como modificar la cadena de conexion para que funcione en otro ordenador.
ya tambien eh intentado hacerlo de forma local pero en diferentes directorios pero aun no lo puedo hacer.
espero tu respuesta saludos...
hola luis
ResponderEliminarla cadena de conexion imagino la defines en el archivo de configuracion App.config, esta basicamente es un archivo xml
cuando compiles junto al .exe ira este archivos que puedes editar con el notepad para cambiar los datos de conexion
aunque si la db estar siempre local con solo definir el Data Source del connection string como .\SQLEXPRESS alcanza y no debes cambiarlo
esto por supuesto si usas sql server express
saludos
hola ERNESTO
ResponderEliminarsi tienes un combo podrias asignar el DataTable al DataContext el control y de alli definir el ItemsSource
How to Bind ComboBox with DataTable: WPF
pero hay varias formas de lograr los mismo
saludos
Hola Leandro, estuve viendo este tema de integrar la BD al proyecto porque tengo que empezar a generar reportes y se me generó una duda: yo la base de datos la tengo alojada en un directorio en C:\BD\MDB.SDF
ResponderEliminarSeguí todos los pasos que explicás en el artículo y ahora el connectionString me apunta a esa dirección en el disco (donde está alojada la BD.
Ahora bien, en el Expolorador de Soluciones tengo el iconito de la BD pero cuando selecciono me aparece en Propiedades la ruta de acceso completa y no editable una copia de la BD en la carpeta de la solución !!!...
Ahora bien, cuando hago doble click sobre esa BD, qué archivo es el que abre en el Explorador de Servidores ?
Ya que si no he visto mal, me está abriendo la BD que esta en la carpeta de la solución y no la que
esta en el directorio C:\BD\
hola LinuxMan
ResponderEliminarpero en el Solution Explorer donde esta el proyecto tienes un .sdf ?
porque si es asi entonces hay una db integrada al proyecto
no se si en el connection string defines la db de otra carpeta, pero la que por defecto muestra el server explorer es la integrada al proyecto
si quieres otra db ubicada en otro luegar, deberias hacer una busqueda definiendo una conexion distinta
saludos
Vaya sorpresa, al instalar mi proyecto, la bD tipo sdf le pone solo read; y hay que cambiar los atributos manualmente.
ResponderEliminarLeandro, hay alguna otra opcion de hacerlo.
hola gym
ResponderEliminares que la db no deberia estar en la carpeta de la aplicacion si es que se instala en "program files" deberias ponerlo en la carpeta App Data del usuario donde si tiene permisos de escritura el usuario
apunto a la carpeta que se crea con
c:\User\\AppData alli deberias poner la db y que la aplicacion apunte a este lugar
saludos
me podrian regalar un proyecto de ejemplo de sql 2010 con VISUAL 2012 CON BOTONES AGREGAR, BUSCAR, ELIMINAR, Y ACTUALIZAR. PORFAVOR MI CORREO ES hcajina92@hotmail.com
ResponderEliminarHola.
ResponderEliminarA ver si alguien me puede ayudar.
Hice una aplicación con vb.net 2010 y utilizo como base de datos Microsoft Access 2003.
He generado el paquete de instalación y lo instalo en un PC que tiene Windows 8.
Le dado a las carpetas y archivos donde se instaló todos los permisos de usuario.
Bueno aquí viene el misterio, resulta que desde el programa hago inserciones, modificaciones, etc. en una tabla de Access y todo perfecto, pero cuando voy a la base de datos y abro la tabla para comprobar el contenido está vacía no puedo visualizar los datos, pero si que contiene información porque desde el programa los puedo ver.
¿Saben si el problema es de Windows 8 y Access 2003?
Es como si Access ocultase el contenido de las tablas. Tengo que decir que hice la misma instalación en XP y Windows 7 y el contenido de las tablas se ve perfectamente.
Gracias, espero que no sea un misterio sin resolver.
hola ANTONIO
ResponderEliminarlo mas cercano que tengo a lo que piedes es
[WinForms] Edición Empleados
saludos
hola Miguel
ResponderEliminarde casualidad defines en el codigo algun try..catch sin que muestre el problema, porque quizas si se produce un fallo pero sino lo informa no te enteras y por lo tanto lo das como valido
tambien podrias validar el connection string para ver a que path de archivo access estas apuntando
saludos
Leandro buenas noches, veo que manejas bien el tema de las bases de datos, estoy realizando un proyecto en Visual Basic 2013, con SQL Server Enterprise 2014, cuando intento hacer la conexión con la base de datos, me indica que el archivo de la base de datos esta en uso, se encuentra en una carpeta llamada C:\\databases\ejemplo.mdf, como podría solucionar esto?
ResponderEliminarHola Leandro Tuttini
ResponderEliminarsobre tu blog tengo una duda publico mi aplicacion en visual basic y todo se genera correctamente pero al momento de instalarla en otra pc me marca los siguientes errores:
1.- No se puede abrir la base de datos c:\.....
solicitada por el inicio de sesion
Error inicio de sesion "Nombre del usuario"
error inicio de sesion del usuario "Nombre del usuario"
2.-Error relacionado con la red o especifico de la instancia mientras se establecia conexion con el servidor sql server no se encontro el servidor o este no estaba accesible.
3.- no se puede adjuntar la base de datos CONTROL_ESCOLAR.mdf ya se encuentra una base de datos con ese nombre
he intentado varia cadenas de conexion pero no han funcionado y esta es la que he dejado hasta el momento
strCadenaConexion = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & System.AppDomain.CurrentDomain.BaseDirectory & "CONTROL_ESCOLAR.mdf;Database=CONTROL_ESCOLAR;Integrated Security=True;User Instance=false"
no se si como deba cambiar la cadena de conexion al hacer el ejecutable una disculpa soy nueva en esto
ResponderEliminarhola Dayana
ResponderEliminarusar esto: System.AppDomain.CurrentDomain.BaseDirectory en el codigo no es correcto, deberias usar:
AttachDbFilename=|DataDirectory|\CONTROL_ESCOLAR.mdf;
y ademas definir en el app.confog o web.config el connection string, no necesitas ponerlo en el codigo
si el desarrollo es web el .mdf deberia estar dentro de la carpeta App_Data, si es winforms deberia estar junto al .exe
saludos
gracias por su comentario pero disculpe mi torpesa mi aplicacion es windowsform se refiere al .exe al windowsform inicial o al proyecto ejecutable para crear un inslable? y a la cadena de conexion ya no le agrego el integrate ni el user instance?
ResponderEliminarhola Dayana
ResponderEliminares indistinto, en ambos casos debes asegurar que el mdf este junto al .exe
al ejecutar desde el VS, si el mdf esta integrado al proyecto (como explico en este articulo) se encargara el propio VS de realizar la copia a la carpeta \bin\Debug
es mas puedes ir a la carpeta para validarlo
saludos
gracias por la ayuda y una disculpa por las molestias entonces la cadena de conexion es sin user instance ni integrate security? y esa cadena de conexion seria para publicarlo o realizar mi instalable no seria necesario cambiarla o si
ResponderEliminarUna disculpa y urgente duda ya realice los pasos que me surgio este nuevo error al instalarlo en otra pc
ResponderEliminar1.- Error al intentar adjuntar una base de datos nombrada automaticamente para el archivo c:\program files....ya existe una base de datos con el mismo nombre, no se puede abrir el archivo especificado o se encuentra en un recurso compartido UNC
y declarado en el app.config quedo asi
hola Dayana
ResponderEliminarcuando usas attach dinamica puede ocurrir que una ejecucion no se quita de forma correcta dejando al db unida al servicio
si te conectas con el Sql Server Management Studio deberias poder ver la db adjunta al servicio y realizar un detach para quitarla
con esto haras que ya no exista una db adjunta con el mismo nombre y puedas correr la aplicacion sin error
saludos
Hola Leandro,
ResponderEliminarUn gusto saludarte,
Quiero comentarte una situación relacionada a la BD incluida en el proyecto que me esta dando dudas.
Estamos desarrollando una aplicación comercial, la cual se descargará desde un servidor Web, será gratuita y tendrá embebida la Base de Datos, por la cual el usuario solo debe instalar el SETUP y listo.
El problema es que seguramente realizaremos versiones posteriores (como todo el Software que puedes descargar gratuitamente).
Que pasa si en el nuevo instalador vuelve a aparecer esa BD ? la anterior se pisa ?
Imaginate que el usuario descarga la versión 1.0.0 y al mes sale la versión 1.1.0 y la descarga para tener una nueva versión.
Yo quiero que se instale la nueva versión, pero que se respete la base anterior.. como logro esa integridad ?
Nota : La BD tiene que ir siempre embebida, ya que para algunos la 1.1.0 será la primera versión y para los primeros, estarán actualizando Versión.
Saludos y Gracias
hola Pablo
ResponderEliminarsi pones la db en el instalador seguro va a pisarla, aunque no comentas es como creas la publicacion, estas usando ClickOnce?
porque esto que planteas depende mucho del soft para crear instalaciones que utilices
quizas deberias hacer dos instaladores, uno que tenga una version full y otra que sea un upgrade a una version mas nueva si es que ya tenia una previa
tambien podrias evaluar de ver si en el instalador se puede definir logica con codigo, digo porque podrias simpre instalar todo el soft y aplciar alguna validacion con codigo que verifique si existe una db previa para crear un backup y reemplazarla
saludos
Hola Leandro una consulta al integrar una base de datos al proyecto y crear un instalador que contenga la base de datos se importan tambien los procedimientos almacenados que tiene la base de datos, o cuando se utilizan procedimientos almacenados es necesario tener la base de datos en un servidosr
ResponderEliminarhola Jose
ResponderEliminarun archivo mdf contiene los procedure, vistas, funciones, etc
por lo que si, llevas los procedure tambien con la db que adjuntas de forma dinamica
un attach dinamico no quiere decir que no este dentro de sql server, en realidad lo esta solo que la forma en com se registra no es permanente
saludos
Buenas noches, amigo le quiero preguntar algo que no tiene que ver con el tema que viene exponiendo aqui, mire esta es una consulta que hago en mi base de datos
ResponderEliminarTry
'crear dataset
Dim dset As New DataSet
'seleccionar los registros de las bases de datos
codifica = "SELECT * FROM EFEDERAL"
enca = "SELECT * FROM ENCABEZADO"
'CARGAR LOS DATATABLE
Dim TABCODI As New OleDbDataAdapter(codifica, Conn)
Dim TABENCA As New OleDbDataAdapter(enca, Conn)
'LLENAR DATASET
TABCODI.Fill(dset, "EFEDERAL")
TABENCA.Fill(dset, "ENCABEZADO")
'ASIGNAR REPORTE
Dim REPORTAR As New efederal
'ASIGNAR EL REPORTE
REPORTAR.SetDataSource(dset)
REPORTAR.Refresh()
CRPV1.ReportSource = REPORTAR
CRPV1.Refresh()
Catch EX As Exception
MsgBox(EX.ToString)
End Try
resulta que me hace bien la consulta y me la lleva a crystal report, pero cuando quiero exportar la informacion a pdf texto excel o word, no me la exporta y me muestra lo siguiente
referencia a objeto no establecida como referencia de un objeto te quise enviar la imagen de la pantalla pero por aqui no se puede
Buenas noches, amigo le quiero preguntar algo que no tiene que ver con el tema que viene exponiendo aqui, mire esta es una consulta que hago en mi base de datos
ResponderEliminarTry
'crear dataset
Dim dset As New DataSet
'seleccionar los registros de las bases de datos
codifica = "SELECT * FROM EFEDERAL"
enca = "SELECT * FROM ENCABEZADO"
'CARGAR LOS DATATABLE
Dim TABCODI As New OleDbDataAdapter(codifica, Conn)
Dim TABENCA As New OleDbDataAdapter(enca, Conn)
'LLENAR DATASET
TABCODI.Fill(dset, "EFEDERAL")
TABENCA.Fill(dset, "ENCABEZADO")
'ASIGNAR REPORTE
Dim REPORTAR As New efederal
'ASIGNAR EL REPORTE
REPORTAR.SetDataSource(dset)
REPORTAR.Refresh()
CRPV1.ReportSource = REPORTAR
CRPV1.Refresh()
Catch EX As Exception
MsgBox(EX.ToString)
End Try
resulta que me hace bien la consulta y me la lleva a crystal report, pero cuando quiero exportar la informacion a pdf texto excel o word, no me la exporta y me muestra lo siguiente
referencia a objeto no establecida como referencia de un objeto te quise enviar la imagen de la pantalla pero por aqui no se puede
Hola Mauro. Soy nuevo en esto de programar. Ya tengo la aplicación en Visual 2012 y mi servidor sql en versión 2008. Como hacer para poder instalarlo en otra maquina cliente. Si bien lo mas sencillo posible. Paso a paso. Veo que son buenos tus consejos.
ResponderEliminarQue tal Leandro!
ResponderEliminarQuisiera consultar contigo que veo que tienes gran experiencia en el tema: Fijate que estoy haciendo un diseño para llevar un control de salidas para el mensajero en VB2008 y tengo SQL2005, y bueno pues por un lado no conozco a grandes rasgos vb tengo un nivel de principiantes, lo que si hago es leer mucho y me meto a tutos, hice una base de datos en sql y me conecto a ella muy bien. Respecto al codigo quisiera que me guiaras si no es mucha molestia y te lo agradecere enormemente
Hola Leandro, estoy generando el MSI de una App WinForm que tiene adjuntado un MDF, mientras estoy en modo Debug funciona perfecto, pero cuando genero el MSI, lo instalo y ejecuto la App, el MDF me queda en Solo lectura. No puedo hacer otra cosa mas que leer los datos.
ResponderEliminarLas propiedades del MDF no estan como Readonly, y la carpeta de la App que contiene el exe no está tildado el Readonly, pero está parcialmente (punto). Que tengo que hacer para poder hacer Writable el MDF? Gracias Saludos!
hola Germán
ResponderEliminaren que carpeta se instala el mdf ? porque si este va junto a la aplicaicon en la carpeta "Program Files" puede que no tengas permisos de escritura sobre esta salvo que te autentiques como administrador local del equipo
podrias usando el manifest indicar a tu aplicacion que ejecute como admin
Start Application With Administrative Rights on Windows Vista / 7
o quizas sea mejor indicar en el instalador que el mdf se ubique en otra carpeta que si tengas permisos de escritura
saludos
Gracias Leandro, si tal cual vos decis, cambié la ruta de instalación de MDF y anduvo perfecto.
ResponderEliminarAl margen, en mi APP tengo una DLL de Flash, la cual es adjuntada en el instalador pero al ejecutar el setup en la PC del cliente esa DLL no se registra. Que solucion me propones para que se registre automaticamente? Hay alguna manera?
Desde ya muchas gracias!
hola Germán
ResponderEliminarentiendo que flash no solo usa una dll .net sino que requiere del instalador que incluya las dll COM, imagino te refieres a estas necesitan registrarse
quizas debas ver de lanzar la instalacion/actualizacion de flash para este punto, no se si con una dll alcance
saludos
Buenas tardes amigos . he desarrollado un sistema para control de un gimnasio, nunca había usado visual 2010 . al instalarlo todo sale perfecto incluso la base de datos se instala automáticamente y el programa corre perfecto .Pero me gustaría saber donde almacena el sistema esa base de datos al instalar para así poderla respaldar . Gracia
ResponderEliminarUna consulta hice un sistema con base de datos sql compact con visual studio 2012 ..!!! creado el instalador del sistema incluido con la base de datos.! lo instale en un sistema operativo windows 7 tb al mismo tiempo instalando algunos pequeños archivos necesarios para que funcione el sistema..!! FUNCIONA TODO BIEN pero la gran duda es que si por algun motivo lo formatean la compu donde esta funcionando el sistema se perderan todos los datos y tb el sistema.!! como puedo hacer un backup de la base de datos para luego instalarlo de nuevo el sistema y agregar la base de datos con los datos recuperados..!!
ResponderEliminarhola David
ResponderEliminarsi la db es Sql Compact realizar un backup seria tan simple como copiar y pegar en otra carpeta el .sdf
en definitiva la db es un archivo, puedes usar el File.Copy() para generar una copia a una carpeta compartida de otra pc
saludos
Leandro buen día:
ResponderEliminarUna consulta. Estoy desarrollando una aplicación en vb.net 2012 y sql server 2012. Ambas con la versión Express. Sin embargo cuando voy a agregar->nuevo elemento->Informe este elemento no existe. Hay forma de activarlo? Ya logre configurar el control Report Viewer pero no es posible crear los archivos .Rdlc. Gracias.
hola
EliminarEs que la version express de VS no incluye soporte para reportes de ningun tipo
Quizas deberias evaluar usar una version completa o quizas pasarte al VS 2013 Community sino recuerdo mal lo incluye
sino es asi entonces deberias pasarte a una version Professional o superior
saludos
Hola Leandro, gracias por todostus siempre acertados consejos, nos ayudas muchisimo GRACIAS
ResponderEliminarcariños desde Venezuela
Gran aporte amigo Leandro. Muchas gracias por compartir.
ResponderEliminarBuenas Leandro,
ResponderEliminarMi pregunta es, cómo hacer un instalador de una aplicación que conecta a una Base de datos remota, es decir mi BD esta en un servidor en red y la aplicación quedará en los equipos cliente, hay algúna configuración especial?
Saludos
hola
EliminarPara creo un instalador podrias creo un Setup Project, aunque esto depende de la version de VS que utilices, desde VS2012 este tipo de proyecto ya no existe, pero se puede agregar
Microsoft Visual Studio 2013 Installer Projects
aunque tambien podrias usar InstallShield
Si la db esta en red simplemente cambiarias el connection string del archivo de configuracion
saludos
Leandro muy bueno tu blog, ya pude hacerlo y me funciono muy bien. pensaba que no se agregaban pero vi que era la otra BD en debug y ya, solucionado. Ahora Tu sabes donde puedo encontrarla para poder hacer un respaldo o algo para no perder los datos en caso de que falle el disco duro o formatien la pc. Saludos.
ResponderEliminarhola
EliminarSi la db es un archivo el backup simplemente seria copiandolo a otra carpeta, podrias usar el File.Copy() aunque seguramente para poder hacerlo deberias verificar que no haya ninguna conexion activa
Si usaste el using para definir las SqlConnection no deberias tener problemas
saludos
Gracias, deja buscarlo para ver donde esta, lo que pasa que ya lo instale con el instalador de VB. ahora solo es encontrarlo para hacer el respaldo. Gracias.!!
EliminarHola leandro, gracias por tus enseñanzas.
ResponderEliminarquisiera hacer solo una preguntita.
cada vez que hago un ejecutable con vs y access al momento de arrancar el programa instalado NO me reconoce la base de datos, mi la ruta ni nada, a pesar de copiar el access en debug y bin
porque pasa esto?
si me puedes ayudar por favor.
gracias
hola
EliminarCuando dices hacer un ejecutable que implicaria? o sea presionas F5 en el VS para iniciar la aplicacion
Porque mencionas "programa instalado" si ejecutas desde el VS no se instala nada
Cuando ejecutas desde el VS es que se copia la db al bin\Debug porque es alli donde trabaja el VS en runtime
Usas el DataDirectory en el connection string ?
saludos
Hola leandro quiero crear un instlador para que se instale en cualquier computador y quiero incluir la bd sqlite que manejo en mi computador, me podrias ayudar porfa. gracias
ResponderEliminarhola
EliminarImagino te refieres a cualquier computadorea que tenga windows, no?
Que version de VS estas utilizando? lo pregunto porque podrias crear un Setup Project, pero no todas las versiones del VS lo incluyen (o quizas usar InstallShield)
Pero existen extensiones para volver habilitarlo
Microsoft Visual Studio 2013 Installer Projects Gratis
saludos
si, cualquier computadora con windows, utilizo vs 2013 ya realizo el instalador por properties/publicar, pero no se como agregar la bd sqlite.
Eliminaragradezco demasiado si me puedes indicar como agregarla, puesto que yo me conecto con ella configurando la ruta de donde la tengo en mi computadora en App.config
Eliminarhola
EliminarSi usas la opcion de publish estas creando un instalador de ClickOnce, en las configuracion del proyecto en la solapa publish podrias cambiar las opciones
Como veras tienes el boton de files en donde podrias agregar el archivo de la db sqlite
saludos
Hola Leandro, gracias por tus aportes que ayudan mucho.
ResponderEliminarquisiera molestarte con un problema que tengo y no lo he podido solucionar. trabajé muchos años con visual 6 y cuando hacia los paquetes de instalación vinculaba la bd en acces al proyecto y al momento de instalarlo en un pc funcionaba sin problemas sin necesidad de instalar acces (supongo el instalador llevaba los archivos necesarios para el funcionamiento sobre la bd). hace un tiempo pasé a visual studio y cuando creo el paquete de instalación incluyendo la bd de acces .accdb al momento de instalarlo en un pc y ejecuto el programa me sale un error (no recuerdo muy bien el mensaje pero tiene que ver conque no esta registrado el acces) y la única solución encontrada es instalar el acces completo en el pc que hago la instalación de mi aplicación. quisiera saber si conoces como hacer para que mi paquete instalador lleve esos archivos o .dll que requiere acces para funcionar.
saludos
hola
EliminarComo estas conectando a la db access ? usas las librerias de ado.net o sea OleDbConnection, OleDbCommand ,etc
Si suas estas libreria no necesitarias tener Access instalado, ahora si usas las librerias COM de adodb en ese caso me parece que si es necesario, el tema es que estas librerias no deberias usarlas
saludos
buenas tardes leandro tengo un inconveniente con mi aplicacion que desarrolle ojola me puedas ayudar
ResponderEliminarcree un programa en visual estudio 2010 donde se conecta a una base de datos remotamente en sql server 2005
todo me funciona bien inserto datos borro consulto. solo que despues de 30seg aprox la aplicacion se traba en leer los datos de la base de datos y despues de sigue normal pero esto sigue igual cada 30 seg aprox.
me faltara configurar algo en el sql server o mi programa para evitar esto
saludos gracias
pude resolver mi problema era porque mi servidor donde esta la base de datos esta con una ip 192.168.1.80
Eliminary donde instalaba mi programa tiene la ip 192.168.0.18 estaban en diferente segmento. solo agrege ese segmento y se soluciono slaudos
Hola leandro, buenas noches. Mi consulta, terminine d hacer un sistema d venta en VS 2015 cn una DB en acces pero al crear el instalador no funciona en otras Pc. Si kmbio la direccion en la cadena d conexion y copio la BD en el otro pc funciona bien, como puedo hacer para que funcione sin necesidad d kmbiar nada.
ResponderEliminarhola
EliminarNo se como estaras creando el instalador pero si la carpeta de destino es "Program Files" puede que no tengsas acceso de escritura con el usuario con el cual te autenticas, quizas debas de definir en el manifest del proyecto para que ejecute con permisos de administrador.
How To Make A VB.NET Application Always Run In Administrator Mode?
saludos
Hola leandro, buenas tardes. Mi consulta, tengo un aplicación en visual studio con una base de datos en sql, mi pregunta es existe alguna forma de que al crear el instalador e instalarla en otra pc se pueda usar sin necesidad de instalar el sql?
ResponderEliminarEstimados, que necesita tener la maquina del usuario final para que la comexion de la app y la LocalDB sea posible.
ResponderEliminar