Visual Basic.NET - Agregar Columna a una base de datos ya hecha

   
Vista:

Agregar Columna a una base de datos ya hecha

Publicado por Msam (2 intervenciones) el 27/08/2008 16:48:28
Hola amigos, soy nuevo en este foro.
Me estoy iniciando en la programación en vb .net que he de decir que me encanta.
LLevo bastantes días dándole vueltas a un asunto , lo que me preguntaba es ¿ como puedo yo añadir "columnas" de registros a una base de datos ya creada? Por ej: típico caso del cliente que ya terminado el programa con su base de datos externa perfectamente diseñada, resulta que se le ocurre que le podía venir bien una columna a mayores.

¿Como puedo yo añadirla sin tener que modificar la base de datos externamente?. He probado a editar el dataSet asociado con el diseñador con el diseñador de dataSet y muy bien, me deja insertar las columnas que sea pero luego al llamar a fill () me da error, pero claro si modifico la consulta (de fill() ) añadiendole la nueva columna no la encuentra porque no está en la tabla como tal sino en el dataSet que yo he modificado.

He probado por codigo a poner ALTER table Tabla1 add Amayores char(1)
y si me modifica la BD pero me gustaría que fuese todo mas "visual" porque hacerlo asi implica que luego tenga que hacer todas las consultas por codigo (ya se que es la forma correcta) pero para cosas sencillas me gustaria aprovechar las herramientas del panel (datagridview , bindingnavigator etc)

Estoy casi seguro de que tiene que haber una forma, pero no he dado con ella.

Muchas gracias por la ayuda por adelantado

Nota:Para mis pruebas estoy utilizando una base de datos Access
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:Agregar Columna a una base de datos ya hecha

Publicado por Fernando (1 intervención) el 27/08/2008 23:09:25
Hola, en el mismo dataset en las propiedades del fill tenes q tener una instrucion llamada SELECT donde selecciona los campos de la tabla q conectaste, una vez que ubicaste esa instruccion agregale el nombre del campo que queres agregar

te mando un ejemplo

Por defecto tenias

SELECT Codigo,Denominacion,Aplicacion

FROM Clientes (Clientes seria el nombre de la tabla)

Ahora supongamos que quieras agregar un campo q se llame Observaciones
entonces sencillamente le agregas una coma a Aplicacion y pones el nombre del campo nuevo.Luego vas a la vista de siseño del dataset y vas a ver q al final tenes la columna agregada para poder darle a tu formularios conectado el source correspondiente.
Espero q te sirva
Un abrazo
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

Me genera una excepcion

Publicado por Msam (2 intervenciones) el 28/08/2008 00:23:29
Hola Fernando, en primer lugar muchas gracias por tu respuesta
Hice lo que tu me pusiste , me añade la columna en el dataset y luego se la añado en el datagridview pero a la hora de probarlo me genera una OleDbException y me dice

"No se han especificado valores para algunos de los parámetros requeridos." Por supuesto si quito la columna me funciona bien

A que puede ser debido?

Muchas gracias por tu ayuda
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

Se me olvido:la excepcion la produce

Publicado por Msam (2 intervenciones) el 28/08/2008 00:27:38
La excepcion se produce al llamar al metodo fill

Me.Tabla1TableAdapter.Fill(Me.Bd1DataSet.Tabla1)

Por que puede ser ?

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:Agregar Columna a una base de datos ya hecha

Publicado por Jim Miñano (44 intervenciones) el 28/08/2008 03:11:01
la respuesta de fernando es correcta salvo q falto indicar poner un valor pro defecto

select campo1, campo2, '0' As AMayores from clientes

de esta manera deberias evitar el error.

mi pregunta es:

De q te sirve ese dato graficamente si no lo vas a guardar en tu tabla ? si dices que no quieres usar el alter table.

saludos

http://foros.solucionesperu.com
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

Si quiero que se guarde en la BD

Publicado por Msam85 (1 intervención) el 28/08/2008 10:31:40
Hola Jim , hice lo que me comentaste y efectivamente si funciona

Me preguntabas De q te sirve ese dato graficamente si no lo vas a guardar en tu tabla ? Pero es que SI quiero guardarlo en la tabla, es que solo puedo hacerlo por codigo usando alter table ?
Es decir, una vez actualizado el dataset como me pusiste, como actualizo la base de datos con la nueva columna(que ya esta en el dataset), para que en ella se modifique la tabla?

Disculpame si estoy diciendo alguna tonteria.

Saludos y 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