CString name1;
CString key1;
GetDlgItemText(IDC_EDIT1,name1);
GetDlgItemText(IDC_EDIT2,key1);
if(m_pSet->IsOpen()) m_pSet->Close();
m_pSet->m_strFilter="[name]='"+name1+"'and[key]='"+key1+"'";
m_pSet->Open();
if(m_pSet->IsBOF()||m_pSet->IsEOF())
{
MessageBox(_T("用户名或密码错误!请重新输入"));
}
else
{
for(m_pSet->MoveFirst();!m_pSet->IsEOF();m_pSet->MoveNext())
{
if(m_pSet->m_name==name1)
{
m_pSet->Edit();
m_pSet->m_zaixian="1";
m_pSet->Update();
m_pSet->Requery();
}
}
MessageBox(_T("登陆成功!"));
Cuser u;
u.DoModal();
}
m_pSet->Close();数据库是access的,我看了dbm不是只读文件,权限也是可以读写的,但是,运行显示的就不能修改了说是只读
CString key1;
GetDlgItemText(IDC_EDIT1,name1);
GetDlgItemText(IDC_EDIT2,key1);
if(m_pSet->IsOpen()) m_pSet->Close();
m_pSet->m_strFilter="[name]='"+name1+"'and[key]='"+key1+"'";
m_pSet->Open();
if(m_pSet->IsBOF()||m_pSet->IsEOF())
{
MessageBox(_T("用户名或密码错误!请重新输入"));
}
else
{
for(m_pSet->MoveFirst();!m_pSet->IsEOF();m_pSet->MoveNext())
{
if(m_pSet->m_name==name1)
{
m_pSet->Edit();
m_pSet->m_zaixian="1";
m_pSet->Update();
m_pSet->Requery();
}
}
MessageBox(_T("登陆成功!"));
Cuser u;
u.DoModal();
}
m_pSet->Close();数据库是access的,我看了dbm不是只读文件,权限也是可以读写的,但是,运行显示的就不能修改了说是只读
解决方案 »
- 两个button按钮图片叠加现象
- VS2008编译问题“找不见hcw文件”
- 如果做到响应一个按键 弹出程序界面?
- 如何知道一个SOCKET是不是阻塞模式
- Microsoft FlexGrid Control, version 6.0 (SP6)控件row值无效
- 初学者请教一个SQL查询比较的问题
- 一个关于结构的问题
- 哪位老大可以帮我解释一下下面的程序,我实在是看不明白了.
- 哪儿可以下载Bound Checker?
- CreateFileMapping 做的文件映像,怎样配置才可以不让文件映像不自动提交 dirty page 到磁盘,而等到我FlushViewOfFile才真正提交 dirty page 到磁盘呢?
- 班级成绩管理系统,排序的函数Seqence 部分出了点错误,望各位大侠帮忙一二~小生不胜感激
- unexpected end of file while looking for precompiled header directive
试试看
2-recordset是不是只读
3-mdb文件本身是不是只读了,好象2003有这个毛病,遇到过但忘记怎么解决了
mdb本身不是只读我看了
怎么看recordset是不是只读啊
pRst->Open("[表名]", _variant_t(sSql), adOpenStatic,
adLockBatchOptimistic, adCmdUnknown);
试试看行不行
比如表A和表B,你生成两个CRecordset的对象分别取两个表的数据不就可以了么?
比如CRecordset set1,set2;
CString sql1,sql2;
sql1="select * from A";
sql2="select * from B";
set1.Open(CRecordset::dynaset,sql1,CRecordset::none);
set2.Open(CRecordset::dynaset,sql,CRecordset::none);
这样子不行么?
这句话是你写进数据库字段的吗?那你检查一下m_pSet->Edit();
//////////////////////////////////////////////////////////////////
CRecordset::Editvirtual void Edit();
throw( CDBException, CMemoryException );说明:
此成员函数用来支持对当前记录的修改。当应用程序调用Edit之后,就可以通过直接重新设置字段数据成员的值来改变它们。当后来应用程序重新调用Update成员函数来将这些改变保存到数据源上时,这次操作才算完成。
注意:
如果你已经实现了成组行读取,你就不能调用Edit。这将导致一个失败断言。虽然类CRecordset不提供用于更新成组数据行的机制,但是你可以使用ODBC API函数SQLSetPos来编写你自己的函数。有关如何做到这一点的例子,请参见DBEFETCH示例。
///////////////////////////////////////////////////////////////////////////////////
以上是MSDN的解释,我再看看