qry.bindValue(":gender",gender); qry.bindValue(":phone",phone); qry.bindValue(":email",email); qry.bindValue(":password",password); if(!qry.exec()){ qDebug()«"Добавление записи не удалось"«qry.lastError();sucess=false;}else{ qDebug()«"Успешное добавление записи";sucess=true;}return sucess;} bool Dbase_admin::modifyLaboratorianDetails(const QString &uname){boolsucess=false;QSqlQuery qry; qry.prepare("SELECT * FROM Laboratory WHERE UserName=:uname"); if(!qry.exec()){sucess=false;}else{sucess=true;}return sucess;} void Dbase_admin::removeLaboratorian(const QString &uname,const QString &email){QSqlQuery qry; qry.prepare("DELETE FROM Laboratorian WHERE UserName=:uname OR Email=:email"); qry.bindValue(":uname",uname); qry.bindValue(":email",email); qry.exec(); }bool Dbase_admin::removeLaboratorianTable(){QSqlQuery qry; qry.prepare("DROP TABLE Laboratorian");qry.exec();return true;} bool Dbase_admin::validLaboratorian(const QString &uname, const QString &email){QSqlQuery qry;qry.prepare("SELECT * FROM Laboratorian WHERE UserName=:uname OR Email=:email"); qry.bindValue(":uname",uname); qry.bindValue(":email",email);if(qry.exec()){if(qry.next()){qDebug()«"Лаборант найден";return true;}else{return false;}}else{ qDebug()«"Лаборант не был найден"; return false;}}bool Dbase_admin::laboratorian_unameExists(const QString &uname){QSqlQuery qry;qry.prepare("SELECT * FROM Laboratorian WHERE UserName=:uname");qry.bindValue(":uname",uname);if(qry.exec()){if(qry.next()){return true;}else{return false;}}else{return false;}}bool Dbase_admin::laboratorian_emailExists(const QString &email){QSqlQuery qry; qry.prepare("SELECT * FROM Laboratorian WHERE Email=:email");qry.bindValue(":email",email);if(qry.exec()){if(qry.next()){return true;}else{return false;}}else{return false;}}void Dbase_admin::viewLaboratorian(){ QSqlQueryModel *model= new QSqlQueryModel(); QSqlQuery *qry=new QSqlQuery(db); qry->prepare("SELECT * FROM Laboratorian");qry->exec();model->setQuery(*qry); }void Dbase_admin::deleteAdmin_Login(){QSqlQuery qry; qry.prepare("DROP TABLE Admin_Login");if(qry.exec()){ qDebug()«"Таблица Admin_Login удалена";}else{qDebug()«"Не удалось удалить таблицу";}}QList Dbase_admin::getAdmin_LoginDetails(){QList admindetails;QSqlQueryqry; qry.prepare(QString("SELECT * FROM Admin_Login"));if(!qry.exec()){qDebug()«"Ошибка получения данных"«qry.lastError();}else{if(qry.next()){ QString fname=qry.value(0).toString(); QString lname=qry.value(1).toString(); QString username=qry.value(2).toString(); QString mobileno=qry.value(3).toString(); QString email=qry.value(4).toString(); QString passwd=qry.value(5).toString(); admindetails.push_front(fname); admindetails.push_front(lname); admindetails.push_front(username); admindetails.push_front(mobileno); admindetails.push_front(email); admindetails.push_front(passwd);}else{qDebug()«"не выполняется запрос";}} return admindetails; }bool Dbase_admin::uNameExists(const QString &uname){QSqlQuery qry; qry.prepare("SELECT * FROM Admin_Login WHERE UserName=:uname"); qry.bindValue(":uname",uname); if(qry.exec()){if(qry.next()){qDebug()«"Имя пользователя существует";return true;}else{return false;}}else{qDebug()«"Имя пользователя не существует";return false;}}bool Dbase_admin::passwordValid(const QString &passwd){QSqlQuery checkQuery;checkQuery.prepare("SELECT * FROM Admin_Login WHERE Password=:passwd");checkQuery.bindValue(":passwd",passwd); if(checkQuery.exec()){if(checkQuery.next()){ qDebug()«"пароль действителен";return true;}else{return false;}}else{qDebug()«"пароль недействителен";return false;}}void Dbase_admin::changeAdminPassword(const QString& uname,const QString& npasswd){public partial class Main : System.Windows.Controls.UserControl{
public Main(){InitializeComponent();}
private void comboBox_Copy_TextInput(object sender, TextCompositionEventArgs e){
comboBox_Copy.IsDropDownOpen = true;
var tb = (System.Windows.Controls.TextBox)e.OriginalSource;
tb.Select(tb.SelectionStart + tb.SelectionLength, 0);
CollectionView cv = (CollectionView)CollectionViewSource.GetDefaultView(comboBox_Copy.ItemsSource);
cv.Filter = s =>
((string)s).IndexOf(comboBox_Copy.Text, StringComparison.CurrentCultureIgnoreCase) >= 0;}
private void comboBox_TextInput(object sender, TextCompositionEventArgs e){
comboBox.IsDropDownOpen = true;
var tb = (System.Windows.Controls.TextBox)e.OriginalSource;
tb.Select(tb.SelectionStart + tb.SelectionLength, 0);
CollectionView cv = (CollectionView)CollectionViewSource.GetDefaultView(comboBox.ItemsSource);
cv.Filter = s =>
((string)s).IndexOf(comboBox.Text, StringComparison.CurrentCultureIgnoreCase) >= 0;}
Программный модуль qbase_laboratorian:
QSqlQuery qry; qry.prepare("UPDATE Admin SET Password=:npasswd WHERE UserName=:uname");qry.bindValue(":npasswd",npasswd); qry.bindValue(":uname",uname);if(qry.exec()){qDebug()«"пароль изменён(Admin)";}else{qDebug()«"пароль не был изменен(Admin)"«qry.lastError();}}void Dbase_admin::changeAdmin_LoginPassword(const QString& uname,const QString& npasswd){QSqlQuery qry; qry.prepare("UPDATE Admin_Login SET Password=:npasswd WHERE UserName=:uname"); qry.bindValue(":npasswd",npasswd); qry.bindValue(":uname",uname);if(qry.exec()){ qDebug()«"Пароль изменен(Admin_Login)";}else{ qDebug()«"пароль не был изменен(Admin_Login)"«qry.lastError();}}void Dbase_admin::createBacteryTable(){QSqlQuery qry; qry.prepare("CREATE TABLE Bactery(ID TEXT,Name TEXT,Category TEXT,Shape TEXT ,Size REAl, CellMembrane TEXT)");if (!qry.exec()){ qDebug() «"Не удалось создать таблицу, возможно, она имя пользователя уже используется";}else{qDebug()«"Создание таблицы";}}bool Dbase_admin::addBactery(const QString &id, const QString &name, const QString &category, const QString &shape, const QString &size, const QString &cellMembrane){bool sucess=false;QSqlQuery qry; qry.prepare("INSERT INTO Bactery(ID,Name,Category,Shape,Size,CellMembrane) VALUES (:id,:name,:category,:shape,:size,:cellMembrane)");qry.bindValue(":id",id); qry.bindValue(":name",name); qry.bindValue(":category",category); qry.bindValue(":shape",shape); qry.bindValue(":size",size); qry.bindValue(":cellMembrane",cellMembrane);if(!qry.exec()){ qDebug()«"Добавить детали не удалось"«qry.lastError();sucess=false;}else{ qDebug()«"Данные добавлены успешно";sucess=true;}return sucess;}bool Dbase_admin::bactery_IdExists(const QString &id){QSqlQuery qry; qry.prepare("SELECT * FROM Bactery WHERE ID=:id");qry.bindValue(":id",id);if(qry.exec()){if(qry.next()){qDebug()«"ID существует";return true;}else{return false;}else{qDebug()«"ID не существует";return false;}}bool Dbase_admin::bactery_NameExists(const QString &name){QSqlQuery qry;qry.prepare("SELECT * FROM Bactery WHERE Name=:name");qry.bindValue(":name",name);if(qry.exec()){if(qry.next()){qDebug()«"имя существует";return true;}else{return false;}}else{qDebug()«"имени не существует";return false;}}void Dbase_admin::deleteBacterys(const QString &id, const QString &category){QSqlQuery qry;qry.prepare("DELETE FROM Bactery WHERE ID=:id OR Category=:category");qry.bindValue(":id",id);qry.bindValue(":category",category);qry.exec();}bool Dbase_admin::validBactery(const QString &id, const QString &category){QSqlQuery qry; qry.prepare("SELECT * FROM Bactery WHERE ID=:id OR Category=:category"); qry.bindValue(":id",id);qry.bindValue(":category",category);if(qry.exec()){if(qry.next()){qDebug()«"бактерия найдена";return true;}else{return false;}}else{qDebug()«"бактерия не была найдена";return false;} }#include "dbase_laboratorian.h" #include #include #include #include Dbase_Laboratorian::Dbase_Laboratorian(const QString &path) { db=QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(path); if(!db.open()) { qDebug()«"Ошибка: подключение к базе данных"; } else { qDebug()«"Успех: подключение к базе данных"; } } Dbase_Laboratorian::Dbase_Laboratorian() {if(db.open()) {db.close();}} bool Dbase_Laboratorian::isOpen() const {return db.isOpen();}bool Dbase_Laboratorian::laboratorianAuth(const QString &uname, const QString &pass) const{bool exists = false;QSqlQuery checkQuery; checkQuery.prepare("SELECT UserName FROM Laborant WHERE UserName=:uname AND Password=:pass");checkQuery.bindValue(":uname", uname);checkQuery.bindValue(":pass", pass);if (checkQuery.exec()){ if (checkQuery.next()){qDebug()«"лаборант уже существует"; exists = true;}}else{qDebug()«"лаборант не существует: " « checkQuery.lastError(); }return exists;}void Dbase_Laboratorian::deleteLaboratorian_Login(){QSqlQuery qry; qry.prepare("DROP TABLE Laborant_Login");if(qry.exec()) {qDebug()«"laborant_Login таблица удалена";}else{qDebug()«"Не удалось удалить таблицу";}} QList Dbase_Laboratorian::getLaboratorian_loginDetails(){ QList laboratoriandetails;QSqlQuery qry; qry.prepare(QString("SELECT * FROM Laborant_Login")); if(!qry.exec()){qDebug()«"Ошибка получения данных"«qry.lastError(); }else{if(qry.next()){QString name=qry.value(0).toString(); QString username=qry.value(1).toString(); QString gender=qry.value(2).toString(); QString mobileno=qry.value(3).toString(); QString email=qry.value(4).toString(); QString passwd=qry.value(5).toString(); laboratoriandetails.push_front(name); laboratoriandetails.push_front(username); laboratoriandetails.push_front(gender); laboratoriandetails.push_front(mobileno); laboratoriandetails.push_front(email); laboratoriandetails.push_front(passwd); }else{qDebug()«"не выполняется запрос";}}return laboratoriandetails;} QList Dbase_Laboratorian::getComDetails() {QList laboratorydetails;QSqlQuery qry;qry.prepare(QString("SELECT * FROM Laboratory"));if(!qry.exec()){ qDebug()«"Ошибка получения данных"«qry.lastError(); }else{if(qry.next()){QString name=qry.value(0).toString(); QString vat=qry.value(1).toString(); QString phone=qry.value(2).toString(); QString address=qry.value(3).toString(); QString email=qry.value(4).toString(); QString website=qry.value(5).toString(); laboratorydetails.push_front(name); laboratorydetails.push_front(vat); laboratorydetails.push_front(phone); laboratorydetails.push_front(address); laboratorydetails.push_front(email); laboratorydetails.push_front(website); }else{qDebug()«"не выполняется запрос"; }}return laboratorydetails;}bool Dbase_Laboratorian::validBactery(QString &id) {QSqlQuery qry; qry.prepare("SELECT * FROM Bactery WHERE ID=:id"); qry.bindValue(":id",id); if(qry.exec()){if(qry.next()){return true;}else{return false;}}else{return false; }}bool Dbase_Laboratorian::validLaboratorian(QString &username,QString &opassword){QSqlQuery qry; qry.prepare("SELECT * FROM Laborant_Login WHERE UserName=:uname AND Password=:password"); qry.bindValue(":uname",username); qry.bindValue(":password",opassword); if(qry.exec()){return true;}else{return false;}} void Dbase_Laboratorian::updateLaboratorian(QString &username,QString &opassword){ QSqlQuery qry; qry.prepare("UPDATE Laborant SET Password=:password WHERE UserName=:uname"); qry.bindValue(":password",opassword);qry.bindValue(":uname",username);qry.exec();}void Dbase_Laboratorian::createReportTable() {QSqlQuery qry;qry.prepare("CREATE TABLE Report(ID TEXT,Name TEXT,LocationInSpace TEXT, Gram TEXT, Quantity INT, Kf REAL)"); if (!qry.exec()){qDebug() «"Не удалось создать таблицу, возможно, она уже существует";}else{qDebug()«"Создание таблицы"; }QList Dbase_Laboratorian::getBacteryDetails(const QString &id) {QList bacterydetails; QSqlQuery qry; qry.prepare(QString("SELECT * FROM Bactery WHERE ID=:id")); qry.bindValue(":id",id);if(!qry.exec()){qDebug()«"Ошибка получения данных"«qry.lastError(); }else{ if(qry.next()) {QString id=qry.value(0).toString();QString name=qry.value(1).toString(); QString category=qry.value(2).toString(); QString shape=qry.value(3).toString(); QString size=qry.value(4).toString(); QString cellmembrane=qry.value(5).toString(); bacterydetails.push_front(id); bacterydetails.push_front(name); bacterydetails.push_front(category); bacterydetails.push_front(shape); bacterydetails.push_front(size); bacterydetails.push_front(cellmembrane);}else{qDebug()«"не выполняется запрос";}}return bacterydetails;}bool Dbase_Laboratorian::addBactery(const QString &id, const QString &name, const QString &locationinspace, const QString &gram, const int &quantity, const double &kf){ bool sucess=false; QSqlQuery qry; qry.prepare("INSERT INTO Report(ID,Name,LocationInSpace,Gram,Quantity) VALUES (:id,:name,:locationinspace,:gram,:quantity,:kf)"); qry.bindValue(":id",id); qry.bindValue(":name",name); qry.bindValue(":locationinspace",locationinspace); qry.bindValue(":gram",gram); qry.bindValue(":quantity",quantity); qry.bindValue(":kf",kf);if(!qry.exec()){ qDebug()«"Добавить детали не удалось"«qry.lastError(); sucess=false;}else{qDebug()«"Данные добавлены успешно";sucess=true;} return sucess;}bool Dbase_Laboratorian::bactery_IdExists(const QString &id) {QSqlQuery qry; qry.prepare("SELECT * FROM Report WHERE ID=:id"); qry.bindValue(":id",id);if(qry.exec()){if(qry.next()){qDebug()«"ID существует"; return true;}else{return false;}}else{ qDebug()«"ID не существует";return false;}}void Dbase_Laboratorian::deleteReportTable() {QSqlQuery qry;qry.prepare("DROP TABLE Report"); qry.exec();}QList Dbase_Laboratorian::getKf() {QList amountdetails;QSqlQuery qry; qry.prepare(QString("SELECT Kf FROM Report")); if(!qry.exec()){qDebug()«"Ошибка получения данных"«qry.lastError(); }else{while(qry.next()){QString a=qry.value(0).toString(); amountdetails.push_front(a);}}qDebug()«amountdetails.count(); return amountdetails;}void Dbase_Laboratorian::createHistoryTable(){ QSqlQuery qry;qry.prepare("CREATE TABLE `History` ( `Report` INTEGER NOT NULL , `Date` TEXT, `Kf` REAL, `Laboratorian` TEXT, PRIMARY KEY(`Report`) )");if (!qry.exec()){ qDebug() «"Не удалось создать таблицу, возможно, она уже существует"; }else{qDebug()«"Создание таблицы"; }}bool Dbase_Laboratorian::addHistory( const QString &date, const double &reportkf, const QString &laboratorian) {bool sucess=false;QSqlQuery qry; qry.prepare("INSERT INTO History(Date,Kf,Laboratorian) VALUES (:date,:reportkf,:laboratorian)"); qry.bindValue(":date",date);qry.bindValue(":reportkf",reportkf); qry.bindValue(":laboratorian",laboratorian); if(!qry.exec()){qDebug()«"Добавить детали не удалось"«qry.lastError(); sucess=false;}else {qDebug()«"Данные добавлены успешно"; sucess=true;}return sucess;}int Dbase_Laboratorian::getReportNo() {int reportno;QSqlQuery qry;qry.prepare("SELECT * FROM History"); if(qry.exec()){if(qry.last()){reportno=qry.value(0).toInt(); }else{return 0;}}else{return 0;}return reportno+1;} |