Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo conectarse para leer y escribir una base de datos sqlite en Qt

Cómo conectarse para leer y escribir una base de datos sqlite en Qt

El ingreso y lectura de la información de los estudiantes se utiliza como demostración. El objetivo principal es demostrar el funcionamiento de la base de datos. En cuanto a la visualización de datos, etc., no está dentro del alcance de la misma. Demostración. Estúdielo usted mismo.

Primero, crea un proyecto de programa de interfaz gráfica en Qt.

Luego, usamos el comando sqlite en la línea de comando para crear la base de datos C:\StudentInfo\sutdentdata.db y creamos una tabla de base de datos estudiante, que tiene cuatro campos: ID, Nombre, Sexo, Edad, no se agregaron datos a la tabla.

Para el uso sencillo de sqlite, puedes consultar otra de nuestras experiencias.

2 Formas sencillas de utilizar SQLite

Al leer y escribir bases de datos SQLite, utilizamos principalmente la clase QSqlDatabase y la clase QSqlQuery. La primera es responsable de crear una conexión a la base de datos y abrirla. base de datos, y este último Responsable de realizar operaciones de consulta. De hecho, el primero también puede realizar operaciones de consulta y devolver los resultados al objeto QSqlQuery, pero Qt no lo recomienda.

Antes de trabajar, aún debes mirar primero el Asistente. Este es un buen hábito para cultivar la resolución de problemas de forma independiente.

Bien, escribamos código para el evento de clic del botón Enter. Con respecto a cómo codificar un evento de un botón, puede consultar nuestra otra experiencia.

Primero agregue sql al archivo .pro y luego no olvide #include lt;QSqlDatabasegt; y #include lt;QSqlQuerygt;.

Bien, ahora agregue el siguiente código a la ranura del botón de entrada:

QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE", "wconntosqlite");

mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");

if(mydb.open())

{

QSqlQuery query(mydb);

QString sqlstr="insertar en los valores del estudiante (ID, Nombre, Sexo, Edad) ('"

ui-gt; le_id-gt ; texto() "','"

ui-gt;le_name-gt;text() "','"

ui-gt;le_sex-gt;text() "', "

ui-gt;le_age-gt;text() ")";

bool isok=query.exec(sqlstr);

if(isok )

qDebug()lt;lt;"Datos escritos exitosamente";

}

Arriba primero llamamos a la función estática addDatabase de QSqlDatabase para cree una conexión A llamada wconntosqlite. Luego pásele el nombre de la base de datos.

Si la base de datos se abre exitosamente, se crea un objeto QSqlQuery asociado y finalmente QSqlQuery realiza el trabajo de insertar datos.

Nota especial: el objeto QSqlQuery debe crearse después de que mydb se abra correctamente; de ​​lo contrario, se producirá un error.

Veamos cómo funciona.

4c Cómo hacer la interfaz

Escribamos el código para el botón de consulta e ingresemos el siguiente código:

QSqlDatabase mydb=QSqlDatabase::addDatabase(" QSQLITE", "rconntosqlite");

mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");

if(mydb.open())

{

Consulta QSqlQuery(mydb);

QString sqlstr="seleccione * del estudiante";

bool isok=query.exec( sqlstr);

if(isok)

qDebug()lt;lt;"Datos leídos correctamente";

query.first();

QString resultado="ID de estudiante:" query.value(0).toString() " "

"Nombre: " query.value(1).toString() " "

"Género:" query.value(2).toString() " "

"Edad: " query.value(3).toString();

ui -gt ;lbl_query-gt; setText(resultado);

}

Es básicamente lo mismo que escribir datos. Lo que necesita atención especial aquí es query.first();. Solo mira lo que dijo el Asistente. Resulta que después de que el objeto de consulta ejecuta la declaración de consulta, la posición de la consulta se coloca en una posición no disponible. Si desea obtener datos de la consulta, debe configurar la consulta en un registro disponible. Hay varios métodos, aquí usamos la función miembro first().

Bien, echemos un vistazo a los resultados.

Puedes ver que los datos leídos por el software son consistentes con los datos en la ventana de la consola.

Resumamos el método de cinco pasos para operar bases de datos SQLite con Qt:

El primer paso es establecer una conexión: QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");

El segundo paso, asociar el archivo de la base de datos: db.setDatabaseName("Aquí está la ruta del archivo de la base de datos")

El tercer paso, abrir la base de datos: db.open()

El cuarto paso, si la base de datos se abre correctamente, cree un objeto QSqlQuery asociado: QSqlQuery query(db)

El quinto paso, ejecute la instrucción SQL: query.exec("Su Cadena de instrucción SQL")