有同学表示安装了SQL server 2008之后只能通过“windows 身份验证”登陆本地数据库,无法通过“SQL server 身份验证”登陆,这是由于安装的时候是通过“windows 身份验证”安装的,改一下配置即可: | |
态,确保设置如左侧图所示。 2. 右击本地服务器名选择属性,更改安全性中的服务器身份验证如下图所示 | |
3. 右击地服务器名选择重新启动(这一部很重要) | |
4. 如何还有问题的话查看目录“D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log” 下的 ERRORLOG 文件,到错误代码,google之 | |
use db27 CREATE Table book ( bno char(8) , category char(10) , title varchar(40) not null, press varchar(30) not null, byear int CHECK(byear > 0), author varchar(20) not null, price decimal(7,2) CHECK(price > 0), total int CHECK(total >= 0), stock int CHECK(stock >= 0), CONSTRAINT ck CHECK(stock <= total) ) INSERT INTO book VALUES ('12345678','数据库','数据库系统原理教程','清华大学出版社',1998,'王珊',27.9,3,0) INSERT INTO book VALUES ('12342378','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0) INSERT INTO book VALUES ('12341278','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0) INSERT INTO book VALUES ('14345678','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0) |
碳油 |
CRect rc; m_ListCtrl.GetWindowRect(&rc); //获取控件大小 //设置了9列,大小是一样的 m_ListCtrl.InsertColumn(0, _T("书号"), LVCFMT_CENTER, rc.Size().cx/9, 0); m_ListCtrl.InsertColumn(1, _T("类别"), LVCFMT_CENTER, rc.Size().cx/9, 1); m_ListCtrl.InsertColumn(2, _T("书名"), LVCFMT_CENTER, rc.Size().cx/9, 2); m_ListCtrl.InsertColumn(3, _T("出版社"), LVCFMT_CENTER, rc.Size().cx/9, 3);半轴套管 m_ListCtrl.InsertColumn(4, _T("出版年份"), LVCFMT_CENTER, rc.Size().cx/9, 4); m_ListCtrl.InsertColumn(5, _T("作者"), LVCFMT_CENTER, rc.Size().cx/9, 5); m_ListCtrl.InsertColumn(6, _T("价格"), LVCFMT_CENTER, rc.Size().cx/9, 6); m_ListCtrl.InsertColumn(7, _T("总藏书量"), LVCFMT_CENTER, rc.Size().cx/9, 7); m_ListCtrl.InsertColumn(8, _T("目前库存数"), LVCFMT_CENTER, rc.Size().cx/9, 8); //LVS_EX_GRIDLINES是希望显示网格; //LVS_EX_FULLROWSELECT是希望被选中时整行反显示; //LVS_EX_HEADERDRAGDROP是让其支持点击表头排序; //LVS_EX_TWOCLICKACTIVATE是希望有鼠标在未被选中的行上移动的时候有一些效果 m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_TWOCLICKACTIVATE); |
private: CDatabase m_db; public: // 将CDBVariant转化成字符串 CString VariantToCString(CDBVariant* var); |
//连接数据库,打开数据源,这里的DSN就是之前在ODBC中设置的DSN if(!m_db.IsOpen() && !m_db.OpenEx(_T("DSN=db27;UID=user277;PWD=user277"), CDatabase::openReadOnly | CDatabase::noOdbcDialog)) { MessageBox(L"连接错误!"); return; } //CRecordset类:代表从数据源选择一组记录(记录集) 磁疗被CRecordset m_set(&m_db); //Open方法打开记录集 m_set.Open(CRecordset::forwardOnly,_T("SELECT * from book"), CRecordset::readOnly); CDBVariant var; // 记录有数据的类型和数据的值,它封闭了VARIANT数据类型 m_ListCtrl.DeleteAllItems(); //删除所有的项目 short nFields = m_set.GetODBCFieldCount(); //得到列的数目 int i = 0; //添加所有内容到控件 while(!m_set.IsEOF()) { for(short压缩空气汽车 index = 0; index < nFields; index++) { m_set.GetFieldValue(index, var); // do something with varValue //添加一行记录 if(index == 0) m_ListCtrl.InsertItem(i, VariantToCString(&var)); //继续增加记录的其他项 else m_ListCtrl.SetItemText(i, index, VariantToCString(&var)); } m_set.MoveNext(); i++; } m_set.Close();//凡打开 m_db.Close(); //皆关闭 |
CString CDataBaseODBCDlg::VariantToCString(CDBVariant* var) { CString str; //转换以后的字符串 if(!var) { str = "NULL Var Parameter"; return str; } switch(var->m_dwType) { case DBVT_SHORT: str.Format(L"%d",(int)var->m_iVal); break; case DBVT_LONG: str.Format(L"%d",var->m_lVal); break; case DBVT_SINGLE: str.Format(L"%10.6f",(double)var->m_fltVal); break; case DBVT_DOUBLE: str.Format(L"%10.6f",var->m_dblVal); break; case DBVT_BOOL: str = (var->m_boolVal==0) ?L"FALSE": L"TRUE"; break; case DBVT_STRING: str = var->m_pstring->GetBuffer(); break; case DBVT_ASTRING: str = var->m_pstringA->GetBuffer(); break; case DBVT_WSTRING: str = var->m_pstringW->GetBuffer(); break; case DBVT_DATE: str.Format(L"%d-%d-%d",(var->m_pdate)->year,(var->m_pdate)->month,(var->m_pdate)->day); break; default: str.Format(L"Unk type %d\n",var->m_dwType); TRACE(L"Unknown type %d\n",var->m_dwType); } return str; } |
void CDataBaseODBCDlg::OnBnClickedBtnadd() { // TODO: 在此添加控件通知处理程序代码 if(!m_db.IsOpen() && !m_db.OpenEx(_T("DSN=db27;UID=user277;PWD=user277"), CDatabase::openReadOnly | CDatabase::noOdbcDialog)) { MessageBox(L"连接错误!"); return; } try { m_db.ExecuteSQL( _T("INSERT INTO book VALUES") _T("('87654321','其他','其他1','浙江大学出版社',1984,'韩寒',12.9,4,2)")); } catch(CDBException* pe) { obd数据 // The error code is in pe->m_nRetCode pe->ReportError(); pe->Delete(); } m_db.Close(); } |
POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition(); if (pos == NULL) { TRACE(_T("No items were selected!\n")); } else双人雨披 { while (pos) { //得到选中的item int nItem = m_ListCtrl.GetNextSelectedItem(pos); TRACE(_T("Item %d was selected!\n"), nItem); // you could do your own processing on nItem here // get item string CString bno = m_ListCtrl.GetItemText(nItem, 0); if(!m_db.IsOpen() && !m_db.OpenEx(_T("DSN=db27;UID=user277;PWD=user277"), CDatabase::openReadOnly | CDatabase::noOdbcDialog)) { MessageBox(L"连接错误!"); return; } try { CString sql; sql.Format(_T("DELETE FROM book WHERE bno = '%s'"),bno); m_db.ExecuteSQL(sql); } catch(CDBException* pe) { // The error code is in pe->m_nRetCode pe->ReportError(); pe->Delete(); } m_db.Close(); //从ListCtrl中删去所选item m_ListCtrl.DeleteItem(nItem); } } |
本文发布于:2024-09-22 13:35:15,感谢您对本站的认可!
本文链接:https://www.17tex.com/tex/1/162062.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |