Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Thumderson en 17 Mayo 2011, 16:33 pm



Título: Problema con el acceso a una base de datos tras haber transladado su ubación
Publicado por: Thumderson en 17 Mayo 2011, 16:33 pm
Buenas, estoy creando una aplicación que necesita acceso a datos, la cual suplo creando una base de datos con visual studio, creo una palntilla ado.netEntity data model, hasta aquí todo correcto, el fichero de la base de datos está en la ubicación C\program files\microsoft sql server\ mssql1\mssql\data, con este fichero en esta ubicación no tengo ningún problema me permite el acceso a los datos así como la modificación o adicción de nuevas entradas a la base de datos.

El problema surge cuando desplazo ese fichero de esa ubicación a la localización del proyecto (lo coloco en el escritorio \desktop), lo reañado a la aplicación cambiando su ruta siguiendo agregar nueva conexión, Archivo de base de datos de microsoft sql server(con su provveodor correspondiente), y en unicación del archivo de base de datos selecciono el del escritorio, ya lo tengo añadido al proyecto, Elimino la pantalla antigua y creo una nueva creo una palntilla ado.netEntity data model la cual asocio con la base de datos creada que ahora se encuentra en el escritorio, tras asociarla a la base de datos, me da la opción de colocarla en mi proyecto acepto. Bien ya esta añadido el acceso de datos, aquí es donde viene el problema

puedo recuperar datos

pero no puedo ni modificarlos ni añadir nuevos, creo que se trata de un problema de permisos pero no se como solventarlos, alguien me puede echar un cable



Error en si del programa o compilación del mismo no me presenta ninguno

al acceder a los datos tras haber transladado la base de datos y haberla añadido ninguno

el problema es que al invocar al método Savechanges(); los datos  solo se quedan almacenado en el contexto de objetos del modelo relacional pero nunca quedan volcado en la base de datos

Un ejemplo del código que uso:

using (bdd_RecomasterEntities contextoDeObjs1 = new bdd_RecomasterEntities())
                {
 
                    usuarios nuevouser = usuarios.Createusuarios(tlogin.Text, tpassword.Text, tdni.Text, Convert.ToInt32(trol.Text));
                    contextoDeObjs1.AddTousuarios(nuevouser);
                    try
                    {
                        contextoDeObjs1.SaveChanges();
                        MessageBox.Show("Nuevo usuario correctamente almacenado");

                       
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.InnerException.Message);
                    }

                }

 

Tras hacer esto y cerrar el programa, mediante el explorador de servidores localizo la tabla usuarios y al  mostrar su contenido no ha quedado grabado en la misma, pero en la ejecución no me presenta ninguna excepción  o error.

 

Sin embargo  cuando no había desplazado el fichero  (cuando se encontraba  en C\program files\microsoft sql server\ mssql1\mssql\data\basedatos.mdf no presentaba problema alguno en almacenaje), pero ahora que sita en el directorio del proyecto y está agregado(creo que correctamente), me permite el acceso a los datos pero no escritura o modificación de los mismos


gracias por anticipado

salu2 Thumderson


Título: Re: Problema con el acceso a una base de datos tras haber transladado su ubación
Publicado por: neoncyber en 18 Mayo 2011, 00:14 am
bueno, tal vez deberias ver si no tiene el atributo readonly del archivo. Segundo, deberias ver quienes son los usuarios que tenian permisos sobre ese archivo mdf mientras estaba en la ruta por defecto de sqlserver. Para eso vas a la ruta por defecto seleccionas el archivo original le haces clic derecho y en la pestaña "Seguridad" verificas que los usuarios que esten en el archivo original sean los mismos que en los que tu archivo en el escritorio

Saludos


Título: Re: Problema con el acceso a una base de datos tras haber transladado su ubación
Publicado por: Thumderson en 18 Mayo 2011, 10:18 am
No he probado de esa forma añadiendo dos usuarios que faltaban que eran "servicio de red" y "SQLServer2005MSSQLUSer$EQUIPO$SQLEXPRESS(EQUIPO\SQLServer2005MSSQLUSer$EQUIPO$SQLEXPRESS)"

Así como que los atributos solo lectura  del fichero.mdf no se encuentran clickeados

Luego en el proyecto la base de datos(fichero.mdf) agregada se encuentra con la propiedad copiar si es posterior.

Uff no se que más hacer...

gracias de todos modos


Esto me ocurre tanto con esa base de datos que mento como si hago un nuevo proyecto, añado una base de datos nueva(ya no empieza en la ubicación que empezaba la otra), al crearla se crea en el proyecto, credo el ADO.NET model y me ocurre lo mismo puedo recuperar pero no almacenar