Error en CommandBuilder UPDATE,DELETE

05/04/2005 - 20:28 por Mario Anta Hervá | Informe spam
Hola, tengo un problema que no podido solucionar en su
totalidad, he dejado vaios mensajes en varios foros y
listas de usuarios pero no he conseguido respuesta si
alguien puede ayudarme estaría muy agradecido.
El error en tiempo de ejecución es el siguiente:

System.InvalidOperationException: Dynamic SQL generation
for the UpdateCommand is not supported against a
SelectCommand that does not return any key column
information.
at
System.Data.OracleClient.OracleCommandBuilder.BuildWhereCla
use(DataTableMapping
mappings, DataRow dataRow, StringBuilder builder,
IDbCommand command, Int32 parameterCount, Boolean isupdate)
at
System.Data.OracleClient.OracleCommandBuilder.BuildUpdateCo
mmand(DataTableMapping
mappings, DataRow dataRow)
at
System.Data.OracleClient.OracleCommandBuilder.base_GetUpdat
eCommand()
at
System.Data.OracleClient.OracleCommandBuilder.GetUpdateComm
and()


Lo que no entiendo es que en la tabla existe primary key y
cuando uso un Data Provider Demo de CoreLab no tengo ningun
problema. Alguien sabe porque no me funciona con el
Proveedor de Microsoft.

Mi codigo gatillador de error es el siguiente:


string strSQL = @"SELECT * FROM
TABLA";
OracleDataAdapter da = new
OracleDataAdapter(strSQL,
strConn);
OracleCommandBuilder cb = new
OracleCommandBuilder(da);
Console.WriteLine
(cb.GetInsertCommand().CommandText);
Console.WriteLine
(cb.GetDeleteCommand().CommandText);
//ERROR DELETE
Console.WriteLine
(cb.GetUpdateCommand().CommandText);
//ERROR UPDATE
.


Un saludo a toda la peña.
 

Leer las respuestas

#1 Octavio Hernandez
06/04/2005 - 09:04 | Informe spam
Mario,

Incluye el ROWID en la sentencia SELECT!
Este artículo te indica las principales cosas a usar/evitar cuando vas
contra Oracle:

http://www.theserverside.net/articl...zingADONET

Salu2 - Octavio

"Mario Anta Hervá" escribió en el
mensaje news:0b5d01c53a0d$34119300$
Hola, tengo un problema que no podido solucionar en su
totalidad, he dejado vaios mensajes en varios foros y
listas de usuarios pero no he conseguido respuesta si
alguien puede ayudarme estaría muy agradecido.
El error en tiempo de ejecución es el siguiente:

System.InvalidOperationException: Dynamic SQL generation
for the UpdateCommand is not supported against a
SelectCommand that does not return any key column
information.
at
System.Data.OracleClient.OracleCommandBuilder.BuildWhereCla
use(DataTableMapping
mappings, DataRow dataRow, StringBuilder builder,
IDbCommand command, Int32 parameterCount, Boolean isupdate)
at
System.Data.OracleClient.OracleCommandBuilder.BuildUpdateCo
mmand(DataTableMapping
mappings, DataRow dataRow)
at
System.Data.OracleClient.OracleCommandBuilder.base_GetUpdat
eCommand()
at
System.Data.OracleClient.OracleCommandBuilder.GetUpdateComm
and()


Lo que no entiendo es que en la tabla existe primary key y
cuando uso un Data Provider Demo de CoreLab no tengo ningun
problema. Alguien sabe porque no me funciona con el
Proveedor de Microsoft.

Mi codigo gatillador de error es el siguiente:


string strSQL = @"SELECT * FROM
TABLA";
OracleDataAdapter da = new
OracleDataAdapter(strSQL,
strConn);
OracleCommandBuilder cb = new
OracleCommandBuilder(da);
Console.WriteLine
(cb.GetInsertCommand().CommandText);
Console.WriteLine
(cb.GetDeleteCommand().CommandText);
//ERROR DELETE
Console.WriteLine
(cb.GetUpdateCommand().CommandText);
//ERROR UPDATE
.


Un saludo a toda la peña.

Preguntas similares