这个问题真心要纠结死了
复制代码void Welcome::connectDB(){ int currentIndex=mainWelcome->currentIndex(); QString studentPattern="1010[0-9]{6,6}",teacherPattern="200[0-9]{7,7}"; QRegExp studentReg(studentPattern),teacherReg(teacherPattern); bool notMatch=false; //正则表达式 来确认当前输入的账号是否符合当前所选身份 if((currentIndex==0 && !studentReg.exactMatch(student->getStudentUID())) ||(currentIndex==1 && !teacherReg.exactMatch(teacher->getTeacherUID())) ||(currentIndex==2 && admin->getAdminUID()!="admin") ) { notMatch=true; } if(notMatch) { QMessageBox *errorMsg=new QMessageBox(QMessageBox::Warning,tr("账号错误!"),tr("输入账号与当前选择身份不符!"), QMessageBox::Ok,this); errorMsg->show(); return; } db = QSqlDatabase::addDatabase("QODBC3"); if(detailWidget->isHidden()){ QString dsn=QString("Driver={sql server};server=127.0.0.1;database=SchoolManagement;uid=errorUID;psw=errorPsw"); db.setDatabaseName(dsn); db.setHostName(QString("127.0.0.1")); db.setPort(1433); }else{ db.setHostName(hostNameLine->text()); db.setPort(portLine->text().toInt()); db.setDatabaseName(dbNameLine->text()); } //根据身份初始化不同窗口 switch(currentIndex) { case 0: db.setUserName(student->getStudentUID()); db.setPassword(student->getStudentPsw()); break; case 1: db.setUserName(teacher->getTeacherUID()); db.setPassword(teacher->getTeacherPsw()); break; case 2: db.setUserName(admin->getAdminUID()); db.setPassword(admin->getAdminPsw()); break; } //是否成功连接 bool connectOK=db.open(); if(connectOK){ //成功登陆后隐藏登陆窗口 qDebug()<<"Connected!"; setVisible(false); switch(currentIndex) { //分登陆角色构建窗口 case 0: //选择学生,初始化一个学生窗口 student->createStudentMainWindow(db); break; case 1: teacher->createTeacherMainWindow(db); break; case 2: admin->createAdminMainWindow(db); break; } }else{ //弹出对话框提示错误,重新登录 QMessageBox *errorMsg=new QMessageBox(QMessageBox::Critical,tr("连接错误!"),tr("请检查相关信息是否正确!"), QMessageBox::Ok,this); errorMsg->show(); }}在自己电脑上运行正常,但是在其他电脑上就无法登陆。是代码的问题还是数据源设置的问题呢。。求教啊