在 Qtsql PyQT4 中添加列名和值作为变量
Posted
技术标签:
【中文标题】在 Qtsql PyQT4 中添加列名和值作为变量【英文标题】:Adding Column name and value as variables in Qtsql PyQT4 【发布时间】:2016-03-08 01:50:07 【问题描述】:我正在尝试向 SQL 数据库表中添加值。但我想使用列名和值作为变量。 Python 控制台显示此代码没有错误。但是数据库表没有变化。意味着没有插入发生。我正在使用 Python、PyQt4 和 SQLite3。有没有办法做到这一点。
nameentry = "John Doe"
columnName = "Name"
self.query.exec('''INSERT INTO MainTable cn VALUES dv;'''.format(cn=tuple(columnName),dv=tuple(nameentry)))
我到处找。但我没有得到答案。 这是我的桌子 Simple Table
【问题讨论】:
好的。您目前遇到的错误是什么?请提供详细信息。 Python 控制台中没有错误。但在数据库表中显示没有添加此条目。表示没有插入发生 请将该详细信息添加到您的问题中。 @idjaw 我正在使用 Python PyQt4 和 SQLite3。我也会添加.. 【参考方案1】:您的查询字符串完全是垃圾:
>>> nameentry = "John Doe"
>>> columnName = "Name"
>>> '''INSERT INTO MainTable cn VALUES dv;'''.format(cn=tuple(columnName),dv=tuple(nameentry))
"INSERT INTO MainTable ('N', 'a', 'm', 'e') VALUES ('J', 'o', 'h', 'n', ' ', 'D', 'o', 'e');"
也许你的意思更像:
>>> '''INSERT INTO MainTable cn VALUES dv;'''.format(cn=columnName,dv=(nameentry,))
"INSERT INTO MainTable Name VALUES ('John Doe',);"
但我也不确定这是否有效,因为值中有一个尾随逗号。所以你可能不得不试试这个:
>>> '''INSERT INTO MainTable cn VALUES (dv!r) ;'''.format(cn=columnName,dv=nameentry)
"INSERT INTO MainTable Name VALUES ('John Doe') ;"
【讨论】:
@ekhumoro 这也不起作用..我不知道为什么。 i.stack.imgur.com/1EjFj.jpg这是我的桌子 @ameen。您需要提供真实的代码,而不是图片。 我正在使用代码动态添加列...self.query.exec_("ALTER TABLE MainTable ADD cn dt ".format(cn=column_name, dt=data_type))
..它可以工作..但是当我添加这个没有变量的直接代码@ekhumoro self.query.exec_("INSERT INTO MainTable Name VALUES ('JOHN JOE');")
它不起作用..
这是一个有点大的程序。如何共享所有这些代码?
是的,我必须插入身份证号码。当我这样写时,它起作用了..self.query.exec_("INSERT INTO MainTable (ID, Name)VALUES (5,'JOHN JOE');")
以上是关于在 Qtsql PyQT4 中添加列名和值作为变量的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:在嵌套字典中添加键/值对;键和值是变量