怎样实现 修改??
在VS2010中ODBS连接SQL2005数据库 查表和修改表代码如下:
UpdateData(true);
CDatabase m_db1;
Ccun m_rs;
m_db1.Open(_T("RAN")); //打开的数据源的
m_rs.m_pDatabase=&m_db1;//
m_rs.m_strFilter.Format("name='%s' and password='%s'",m_NM,m_PW); //利用CRecordSet类的成员变量m_strFilter和m_strSort来执行条件查询和结果排序。m_strFilter用于指定过滤字符串,
m_rs.Open(CRecordset::snapshot,NULL,CRecordset::none);
try
{
if(m_NM=="")
{
AfxMessageBox("请输入用户名!");
return;
}
if(m_rs.IsEOF())
{
m_rs.Close();
AfxMessageBox("密码错误,请重试");
return;
}
else
{
m_rs.Close(); AfxMessageBox("登陆成功");
if(m_P==m_RP)
{
try
{
m_pConnec.CreateInstance(__uuidof(Connection));
m_pConnec->Open((_bstr_t)"Driver={SQL Server};Server=3TKVNQXA1WOFZC6;Database=ran","","",adModeUnknown);
//或者以下两行其中之一方式
//m_pConnection->Open((_bstr_t)"Driver={SQL Server};Server=11.0.3128\\SQLEXPRESS;Database=haitest","","",adModeUnknown);
//m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown); ;
}
catch(_com_error e)
{
AfxMessageBox("连接数据失败,请检查数据库路径是否正确!");
}
_bstr_t sql;
sql = "select * from cun";
m_pRecord.CreateInstance(__uuidof(Recordset));
m_pRecord->Open(sql,m_pConnec.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
try
{
m_pRecord->AddNew(); //添加新行
m_pRecord->PutCollect("name",(_bstr_t)m_NM);
m_pRecord->PutCollect("password",(_bstr_t)m_P);
m_pRecord->Update(); //更新数据表
if(m_pRecord!=NULL)
m_pRecord->Close();
m_pConnec->Close();
}
catch(...)
{
MessageBox("操作失败");
return;
}
MessageBox("修改成功");
}
return;
}
}
catch(CException* e)
{
e->ReportError();
return;
}
UpdateData(false);
问题:为什么修改的永远都是第一行的信息呢?要怎样改 才能修改想要修改的信息呢??
UpdateData(true);
CDatabase m_db1;
Ccun m_rs;
m_db1.Open(_T("RAN")); //打开的数据源的
m_rs.m_pDatabase=&m_db1;//
m_rs.m_strFilter.Format("name='%s' and password='%s'",m_NM,m_PW); //利用CRecordSet类的成员变量m_strFilter和m_strSort来执行条件查询和结果排序。m_strFilter用于指定过滤字符串,
m_rs.Open(CRecordset::snapshot,NULL,CRecordset::none);
try
{
if(m_NM=="")
{
AfxMessageBox("请输入用户名!");
return;
}
if(m_rs.IsEOF())
{
m_rs.Close();
AfxMessageBox("密码错误,请重试");
return;
}
else
{
m_rs.Close(); AfxMessageBox("登陆成功");
if(m_P==m_RP)
{
try
{
m_pConnec.CreateInstance(__uuidof(Connection));
m_pConnec->Open((_bstr_t)"Driver={SQL Server};Server=3TKVNQXA1WOFZC6;Database=ran","","",adModeUnknown);
//或者以下两行其中之一方式
//m_pConnection->Open((_bstr_t)"Driver={SQL Server};Server=11.0.3128\\SQLEXPRESS;Database=haitest","","",adModeUnknown);
//m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown); ;
}
catch(_com_error e)
{
AfxMessageBox("连接数据失败,请检查数据库路径是否正确!");
}
_bstr_t sql;
sql = "select * from cun";
m_pRecord.CreateInstance(__uuidof(Recordset));
m_pRecord->Open(sql,m_pConnec.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
try
{
m_pRecord->AddNew(); //添加新行
m_pRecord->PutCollect("name",(_bstr_t)m_NM);
m_pRecord->PutCollect("password",(_bstr_t)m_P);
m_pRecord->Update(); //更新数据表
if(m_pRecord!=NULL)
m_pRecord->Close();
m_pConnec->Close();
}
catch(...)
{
MessageBox("操作失败");
return;
}
MessageBox("修改成功");
}
return;
}
}
catch(CException* e)
{
e->ReportError();
return;
}
UpdateData(false);
问题:为什么修改的永远都是第一行的信息呢?要怎样改 才能修改想要修改的信息呢??
...全文
相关推荐
linux中批量修改文件名的脚本代码
在Linux系统中,批量修改文件名是一项常见的任务,特别是在处理大量文件时,手动更改每个文件名显然效率低下。为了提高工作效率,我们可以编写脚本利用shell和`rename`命令来实现批量重命名。
如何使用交换机将摄像头和机械臂连接到同一个局域网,并确保它们的IP地址在同一网段内。然后通过修改代码连接对应IP,实现两者的同时通信??
🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up! 备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。
c#实现CE内存高效搜索,读写源码.zip
memory.dll很可能是一个动态链接库文件,用于支持内存搜索和修改功能。在这类库中,往往会包含一系列用于内存读写、搜索特定数据模式的函数。而“?? ?? ?? ?5 ?? ?? 5? 00 ??
C#实现appSettings节点读取与修改的方法
本文将详细讲解如何在C#中实现appSettings节点的读取与修改。1.
swift-ZMAddressBookiOS通讯录操作对通讯录进行添加删除修改查询等操作.
通过查看其源代码(ZMAddressBook-master),你可以学习到更多的实现细节和最佳实践。


数据库
