Estoy haciendo mis pinitos con visual Basic 2005 y la parte de bases de datos parece que me está costando un poco así que he pensado pedir ayuda en vista de que no encuentro la respuesta yo sola.
Verán, el otro día estuve probando a hacer un programita que insertaba en una base de datos un nombre y una descripción. Además en la base de datos existe un campo autonumérico.
En el formulario, en tiempo de diseño inserté los controles de la conexión, el dataset, el comando y el dataadapter.
A la hora de ejecutar hacía una búsqueda para ver que dicho nombre no existiera y si no existía insertaba mediante este código:
Código:
Funciona perfectamente.Dim MiFila As DataRow MiFila = DataSet1.Tables(0).NewRow() MiFila("nombre") = txt_nombre.Text MiFila("descripcion") = txt_descrip.Text DataSet1.Tables(0).Rows.Add(MiFila) If DataSet1.HasChanges Then SqlCommand1.CommandText = "insert into categoria(nombre,descripcion)values(@nombre,@descripcion)" SqlCommand1.Connection = SqlConnection1 SqlDataAdapter1.InsertCommand = SqlCommand1 SqlCommand1.Parameters.Add("@nombre", Data.SqlDbType.NChar, 50, "nombre") SqlCommand1.Parameters.Add("@descripcion", Data.SqlDbType.NText, 250, "descripcion") SqlConnection1.Open() SqlDataAdapter1.Update(DataSet1) SqlConnection1.Close()
Ahora me puse con otro que ingresa una serie de datos más, unos provenientes de cajas de textos, otros de listbox y otros de variables. Y también tiene su campo autonumérico.
Simplemente, en el código, compruebo que aquellos datos que son obligatorios se hayan completado. Luego ejecuto esto:
Código:
Igual que antes, los controles se encuentran en el formulario en tiempo de diseño, la conexión está bien pues la utilizo al principio para llenar las listas... pero no funciona Dim MiFila As DataRow MiFila = Dset_insertar.Tables(0).NewRow MiFila("plato") = txt_plato.Text MiFila("foto") = txt_foto.Text MiFila("tipo") = lst_tipo.SelectedValue MiFila("venta") = venta MiFila("raciones") = lst_racion.SelectedValue MiFila("presentacion") = presentacion MiFila("minimo") = txt_minimo.Text MiFila("tamannos") = tamanno MiFila("comentarios") = txt_comentarios.Text Dset_insertar.Tables(0).Rows.Add(MiFila) If Dset_insertar.HasChanges Then Com_insertar.CommandText = "insert into platos (plato, foto, tipo, venta, raciones, presentacion, minimo, tamannos, comentarios) values (@plato, @foto, @tipo, @venta, @raciones, @presentacion, @minimo, @tammanos, @comentarios)" Com_insertar.Connection = SqlConnection1 Adap_insertar.InsertCommand = Com_insertar Com_insertar.Parameters.Add("@plato", SqlDbType.NChar, 75, "plato") Com_insertar.Parameters.Add("@foto", SqlDbType.NChar, 255, "foto") Com_insertar.Parameters.Add("@tipo", SqlDbType.NChar, 15, "tipo") Com_insertar.Parameters.Add("@venta", SqlDbType.NChar, 15, "venta") Com_insertar.Parameters.Add("@raciones", SqlDbType.Int, 4, "raciones") Com_insertar.Parameters.Add("@presentacion", SqlDbType.NChar, 15, "presentacion") Com_insertar.Parameters.Add("@minimo", SqlDbType.Int, 4, "minimo") Com_insertar.Parameters.Add("@tamannos", SqlDbType.NChar, 50, "tamannos") Com_insertar.Parameters.Add("@comentarios", SqlDbType.NVarChar, -1, "comentarios") SqlConnection1.Open() Adap_insertar.Update(Dset_insertar) SqlConnection1.Close()

Yo lo miro y lo remiro y lo veo exactamente igual que el otro que funcionaba salvo por la cantidad de campos, pero esta vez no funciona.
El primer error me lo da justo cuando empiezan la asignación de valores, pues me dice que "plato" no es un campo de table1.
He probado a crear la columna: Dset_insertar.Tables(0).Columns.Add("plato") (obviamente igual para todas las columnas) y entonces rula, pero cuando llego a: Adap_insertar.update, me dice: Update no puede encontrar TableMapping['Table'] o DataTable 'Table'.
Si escribo Adap_insertar.update(Dset_insertar, 0) cambia 'Table' por '0', si escribo el nombre de mi tabla 'platos' me dice esa. pero siempre sale ese error.
Ya no sé que hacer. La verdad que recién estoy aprendiendo. Encontré un manual por internet que es con el que estaba guiando pero me siento totalmente perdida pues se me hace muy raro que códigos tan parecidos uno funcione y otro no.
Estoy segura que estoy obcecada en algo que tengo delante de mis narices y no lo veo, pero no consigo pasar de ahi.
Si alguien me puede ayudar, por favor...
Gracias de antemano
