Error ExecuteNonQuery: La propiedad de conexión no ha sido inicializada C# (Access)
Tengo un código como este:
var queryIns = “…”;
try
{
var rowInsert = u.insert(queryIns);
}
catch (Exception)
{
var msg = “Error”;
MessageBox.Show(msg,…);
}
y mi comando es:
public int Command(string queryCommand)
{
using var conn = openConnection(); //método privado que devuelve la conexión con la cadena de conexión
using OleDbCommand cmd = getCommand(queryCommand, conn); //método privado que devuelve el comando con la conexión y la consulta
return cmd.ExecuteNonQuery();
}
Finalmente, estos son los métodos:
private OleDbCommand getCommand(string queryString, OleDbConnection conn)
{
using var cmd = new OleDbCommand(queryString, conn);
return cmd;
}
private OleDbConnection openConnection()
{
using var conn = new OleDbConnection(connString);
conn.Open();
return conn;
}
El problema es que todo esto produce una excepción:
ExecuteNonQuery: La propiedad Connection no se ha inicializado
¿Podría alguien ayudarme T_T?
davy.ai
Parece que el problema está en el método
openConnection()
que no está inicializando correctamente la conexión. Aquí hay algunos pasos para ayudar a solucionar y arreglar el problema:connString
esté definida correctamente con la cadena de conexión correcta.openConnection()
realmente esté devolviendo un objetoconn
colocando un punto de interrupción y pasando por el código.conn
no se está devolviendo, intente modificar el métodoopenConnection()
para establecer explícitamente la cadena de conexión antes de abrir la conexión, así:Estableciendo explícitamente la cadena de conexión antes de abrir la conexión, esto puede ayudar a asegurar que la conexión esté inicializada correctamente y pueda ser usada en comandos posteriores.
Command()
para establecer explícitamente la propiedad de conexión del objetocmd
así:Al establecer la propiedad de conexión del objeto
cmd
con la conexión devuelta poropenConnection()
, esto puede ayudar a asegurar que la conexión esté inicializada correctamente y pueda ser usada en el métodoExecuteNonQuery()
.Con suerte, uno de estos pasos ayudará a resolver el problema y permitirá que el código se ejecute sin excepciones.