Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/08/2008, 13:04
Phillip
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 9 meses
Puntos: 1
Error al insertar un nuevo registro con un dataset

Hola amigos,
Tengo el siguiente problema.

Estoy insertando un nuevo registro con un dataset en Visual Basic.Net 2005 en una base de datos access la tabla donde se insertara el nuevo registro se llama "Clientes".

A continuacion les muestro el codigo al presionar el boton Guardar del formularion:

' Declaramos un objeto DataRow para
' insertar en él los nuevos datos
Dim MiDataRow As Data.DataRow
' Creamos una nueva fila en el DataSet
MiDataRow = DataSet1.Tables("Clientes").NewRow()

'Insertamos los datos en el DataSet
'El nombre que se encuentra dentro de ("") son los campos de la tabla Clientes
MiDataRow("doc") = "CC"
MiDataRow("Idcliente") = TxtId_cliente.Text
MiDataRow("Nombre") = TxtNombre.Text
MiDataRow("Apellidos") = TxtApellidos.Text
MiDataRow("Telefono") = TxtTelefono.Text
MiDataRow("Celular") = TxtCelular.Text
MiDataRow("Direccion") = TxtDireccion.Text
MiDataRow("Codciudad") = CInt(TxtCod_ciudad.Text)
MiDataRow("Email") = TxtEmail.Text
MiDataRow("Estado") = TxtEstado.Text
DataSet1.Tables("Clientes").Rows.Add(MiDataRow)

' Si el DataSet tiene cambios ?
If DataSet1.HasChanges Then

OleDbCommand1.CommandText = "INSERT INTO Clientes(doc, Idcliente, Nombre, Apellidos, Telefono, Celular, Direccion, Codciudad, Email, Estado) VALUES(@doc, @Idcliente, @Nombre, @Apellidos, @Telefono, @Celular, @Direccion, @Codciudad, @Email, @Estado)"

OleDbCommand1.Connection = OleDbConnection1
OleDbDataAdapter1.InsertCommand = OleDbCommand1

' Añadimos los parámetros y comandos correspondientes
' para cada campo a añadir en la base de datos
OleDbCommand1.Parameters.Add("@doc", OleDb.OleDbType.Char, 10)
OleDbCommand1.Parameters.Add("@Idcliente", OleDb.OleDbType.Char, 15)
OleDbCommand1.Parameters.Add("@Nombre", OleDb.OleDbType.Char, 30)
OleDbCommand1.Parameters.Add("@Apellidos", OleDb.OleDbType.Char, 30)
OleDbCommand1.Parameters.Add("@Telefono", OleDb.OleDbType.Char)
OleDbCommand1.Parameters.Add("@Celular", OleDb.OleDbType.Char)
OleDbCommand1.Parameters.Add("@Direccion", OleDb.OleDbType.Char, 50)
OleDbCommand1.Parameters.Add("@Codciudad", OleDb.OleDbType.Numeric)
OleDbCommand1.Parameters.Add("@Email", OleDb.OleDbType.Char, 30)
OleDbCommand1.Parameters.Add("@Estado", OleDb.OleDbType.Char, 10)

' Abrimos la Conexión
OleDbConnection1.Open()
' Realizamos la inserción de datos desde el DataSet
' a través del DataAdapter
OleDbDataAdapter1.Update(DataSet1, "Clientes")
' Cerramos la conexión
OleDbConnection1.Close()
' Indicamos con un mensaje que la inserción
' de datos se ha realizado con éxito
MessageBox.Show("Datos insertados correctamente")
End If

Este el es errro que me saca visual studio cuando presiono el boton guardar
dice:
No se controlo OleDbException
El parámetro @doc no tiene un valor predeterminado.


El campo doc de la tabla clientes lo tengo definifo en acces como tipo Texto de longitu 10.
le puse un valor predeterminado en access pero me sigue mostrando este errror


Les pido su colaboracion por favor que me ayude a identificar y corregir el error