对数据库中的某几项记录进行修改或删除操作时出现
"更新或删除操作未涉及任何数据行"的异常,
请问这是怎么回事?
若是数据库的原因,不能对这些数据进行修改或删除,
那怎样才能跳过这一行让程序继续运行?
请给出一些示范代码,谢谢
13 个解决方案
#1
不是数据库的原因,肯定是没有打开记录集。用classwizard创建CRecordset的派生类,指定
odbc数据源。然后可以进行操作
if(!m_set.isopen())
m_set.OPen();
m_set.movefirst();
m_set.delete();
m_set.close();
odbc数据源。然后可以进行操作
if(!m_set.isopen())
m_set.OPen();
m_set.movefirst();
m_set.delete();
m_set.close();
#2
同意楼上的,一定要判断库是不是打开,记录集是不是打开
#3
而且修改,添加的话,要调用 m_set.Edit(); m_set.AddNew() .....这些函数
#4
示范代码:
CMyRecordSet myRecordSet;
if(!myRecordSet.isOpen())
{
myRecordSet.Open();
}
如果要更新,就用myRecordSet.Edit() …… myRecordSet.Updata();
如果要添加,就用myRecordSet.AddNew() …… myRecordSet.Updata();
CMyRecordSet myRecordSet;
if(!myRecordSet.isOpen())
{
myRecordSet.Open();
}
如果要更新,就用myRecordSet.Edit() …… myRecordSet.Updata();
如果要添加,就用myRecordSet.AddNew() …… myRecordSet.Updata();
#5
CRecordset rs(m_DB);
rs("","select * from **")打开记录集
然后使用rs操作!
rs("","select * from **")打开记录集
然后使用rs操作!
#6
我想说一句,我并不是只修改了一条记录,
我使用如下语句:
do
{
.....;
}while(!m_pSet->IsEOF());
修改了很多条记录,
当循环到第830条记录时出现了,上面所说的异常,
我想如果是记录集没有打开,那么第一条记录就出现异常了!
我使用如下语句:
do
{
.....;
}while(!m_pSet->IsEOF());
修改了很多条记录,
当循环到第830条记录时出现了,上面所说的异常,
我想如果是记录集没有打开,那么第一条记录就出现异常了!
#7
在你的循环体中一定要把m_pSet->MoveNext() 语名写在最后一行,
错误原因一定是记录移到尾部后进行了操作。
错误原因一定是记录移到尾部后进行了操作。
#8
好象不是这个原因,
记录还远没有到尾部,
不过还是感谢你了
还有没有人有其它意见的,我都快急死了!
记录还远没有到尾部,
不过还是感谢你了
还有没有人有其它意见的,我都快急死了!
#9
救命呀,大家快进来看看呀,
要多少分都给!!!!!
要多少分都给!!!!!
#10
1.记录集有多少条记录
2.在记录集向下翻动的时候,有没有正确的移动记录集指针
3.在出现异常的那条语句前跟踪一下,看看记录集指针是不是移到了Eof的位置
2.在记录集向下翻动的时候,有没有正确的移动记录集指针
3.在出现异常的那条语句前跟踪一下,看看记录集指针是不是移到了Eof的位置
#11
看看数据是不是有问题。
如果前面的能删除,后面的不能删除,应该使数据的问题。
另外,我好像没有看到你提交删除结果的代码。
如果前面的能删除,后面的不能删除,应该使数据的问题。
另外,我好像没有看到你提交删除结果的代码。
#12
学习。。
#13
删除结果的代码没有贴出来,应该和修改的情况是一样的吧?
如果是数据有问题那该怎么办?
是不是只有手动修改了?
如果是数据有问题那该怎么办?
是不是只有手动修改了?
#1
不是数据库的原因,肯定是没有打开记录集。用classwizard创建CRecordset的派生类,指定
odbc数据源。然后可以进行操作
if(!m_set.isopen())
m_set.OPen();
m_set.movefirst();
m_set.delete();
m_set.close();
odbc数据源。然后可以进行操作
if(!m_set.isopen())
m_set.OPen();
m_set.movefirst();
m_set.delete();
m_set.close();
#2
同意楼上的,一定要判断库是不是打开,记录集是不是打开
#3
而且修改,添加的话,要调用 m_set.Edit(); m_set.AddNew() .....这些函数
#4
示范代码:
CMyRecordSet myRecordSet;
if(!myRecordSet.isOpen())
{
myRecordSet.Open();
}
如果要更新,就用myRecordSet.Edit() …… myRecordSet.Updata();
如果要添加,就用myRecordSet.AddNew() …… myRecordSet.Updata();
CMyRecordSet myRecordSet;
if(!myRecordSet.isOpen())
{
myRecordSet.Open();
}
如果要更新,就用myRecordSet.Edit() …… myRecordSet.Updata();
如果要添加,就用myRecordSet.AddNew() …… myRecordSet.Updata();
#5
CRecordset rs(m_DB);
rs("","select * from **")打开记录集
然后使用rs操作!
rs("","select * from **")打开记录集
然后使用rs操作!
#6
我想说一句,我并不是只修改了一条记录,
我使用如下语句:
do
{
.....;
}while(!m_pSet->IsEOF());
修改了很多条记录,
当循环到第830条记录时出现了,上面所说的异常,
我想如果是记录集没有打开,那么第一条记录就出现异常了!
我使用如下语句:
do
{
.....;
}while(!m_pSet->IsEOF());
修改了很多条记录,
当循环到第830条记录时出现了,上面所说的异常,
我想如果是记录集没有打开,那么第一条记录就出现异常了!
#7
在你的循环体中一定要把m_pSet->MoveNext() 语名写在最后一行,
错误原因一定是记录移到尾部后进行了操作。
错误原因一定是记录移到尾部后进行了操作。
#8
好象不是这个原因,
记录还远没有到尾部,
不过还是感谢你了
还有没有人有其它意见的,我都快急死了!
记录还远没有到尾部,
不过还是感谢你了
还有没有人有其它意见的,我都快急死了!
#9
救命呀,大家快进来看看呀,
要多少分都给!!!!!
要多少分都给!!!!!
#10
1.记录集有多少条记录
2.在记录集向下翻动的时候,有没有正确的移动记录集指针
3.在出现异常的那条语句前跟踪一下,看看记录集指针是不是移到了Eof的位置
2.在记录集向下翻动的时候,有没有正确的移动记录集指针
3.在出现异常的那条语句前跟踪一下,看看记录集指针是不是移到了Eof的位置
#11
看看数据是不是有问题。
如果前面的能删除,后面的不能删除,应该使数据的问题。
另外,我好像没有看到你提交删除结果的代码。
如果前面的能删除,后面的不能删除,应该使数据的问题。
另外,我好像没有看到你提交删除结果的代码。
#12
学习。。
#13
删除结果的代码没有贴出来,应该和修改的情况是一样的吧?
如果是数据有问题那该怎么办?
是不是只有手动修改了?
如果是数据有问题那该怎么办?
是不是只有手动修改了?