找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 8166|回复: 3

[求助] 操作数据库SQLite时,cursor.rowcount值的问题

2

主题

5

帖子

5

积分

贫民

积分
5
Aha 发表于 2014-12-13 14:21:45 | 显示全部楼层 |阅读模式
本帖最后由 Aha 于 2014-12-13 14:37 编辑
  1. </blockquote></div><div class="blockcode"><blockquote>import traceback
  2. import sqlite3

  3. ## 数据库连接
  4. def connSql():
  5.         try:
  6.                 ## 数据库文件test.db,若不存在则会在当前目录下创建
  7.                 conn = sqlite3.connect('test.db')
  8.                 ## 创建一个游标Cursor,用于数据库操作
  9.                 cursor = conn.cursor()
  10.         except:
  11.                 ## 输出当前异常信息
  12.                 print traceback.format_exc()
  13.         return conn, cursor

  14. def dosomething():
  15.         conn, cursor = connSql()
  16.         try:
  17.                 ## 创建表user,首先判断表是否存在
  18.                 sql = 'create table user( id varchar(20) primary key, name varchar(20))'
  19.                 cursor.execute(sql)
  20.                 ## 插入数据
  21.                 cursor.execute('insert into user (id, name) values ("1", "Aha")')
  22.                 cursor.execute('insert into user (id, name) values ("2", "Winstic")')
  23.         except:
  24.                 pass

  25.         ## 通过rowcount获得插入行数
  26.         count = cursor.rowcount
  27.         print 'insert %d rowcount' % count

  28.         ## 关闭cursor
  29.         cursor.close()
  30.         ## 提交事务
  31.         conn.commit()
  32.         conn.close()
复制代码

在获取影响行数(count = cursor.rowcount)之前已经插入两行数据,但获取的值依然是1。。。。
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2014-12-13 14:42:27 | 显示全部楼层
没有自动提交吧
回复 支持 反对

使用道具 举报

2

主题

5

帖子

5

积分

贫民

积分
5
Aha  楼主| 发表于 2014-12-13 19:47:09 | 显示全部楼层

那为什么在查询user表的时候,可以找到插入的两条数据?
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2014-12-14 08:36:17 | 显示全部楼层
Aha 发表于 2014-12-13 19:47
那为什么在查询user表的时候,可以找到插入的两条数据?

不明白你说的具体是指什么地方,但是你的commit是放在了最后,提交了以后数据库里面才会真正有数据。你可以通过其他数据库管理工具看一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表