一 更新数据库界面
1 主界面代码
# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
from Update_Table_Window import MyFrame37
from Update_Document_Window import MyFrame39
from Update_ZiDuan import MyFrame41
###########################################################################
## Class MyFrame33
###########################################################################
class MyFrame33(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
pos=wx.DefaultPosition,size=wx.Size(536, 151),
style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer8 = wx.BoxSizer(wx.VERTICAL)
bSizer9 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText8 = wx.StaticText(self, wx.ID_ANY,
wx.EmptyString, wx.DefaultPosition,
wx.Size(130, 50), 0)
self.m_staticText8.Wrap(-1)
bSizer9.Add(self.m_staticText8, 0, wx.ALL, 5)
self.m_button3 = wx.Button(self, wx.ID_ANY, u"更新TABLE名称",
wx.DefaultPosition, wx.Size(120, 50), 0)
bSizer9.Add(self.m_button3, 0, wx.ALL, 5)
self.m_button4 = wx.Button(self, wx.ID_ANY, u"更新数据",
wx.DefaultPosition, wx.Size(120, 50), 0)
bSizer9.Add(self.m_button4, 0, wx.ALL, 5)
bSizer8.Add(bSizer9, 0, wx.EXPAND, 5)
bSizer10 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText9 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(130, 50), 0)
self.m_staticText9.Wrap(-1)
bSizer10.Add(self.m_staticText9, 0, wx.ALL, 5)
self.m_button5 = wx.Button(self, wx.ID_ANY, u"更新TABLE字段",
wx.DefaultPosition, wx.Size(120, 50), 0)
bSizer10.Add(self.m_button5, 0, wx.ALL, 5)
self.m_button6 = wx.Button(self, wx.ID_ANY, u"退出",
wx.DefaultPosition, wx.Size(120, 50), 0)
bSizer10.Add(self.m_button6, 0, wx.ALL, 5)
bSizer8.Add(bSizer10, 0, wx.EXPAND, 5)
self.SetSizer(bSizer8)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.m_button3.Bind(wx.EVT_BUTTON, self.m_button3OnButtonClick)
self.m_button4.Bind(wx.EVT_BUTTON, self.m_button4OnButtonClick)
self.m_button5.Bind(wx.EVT_BUTTON, self.m_button5OnButtonClick)
self.m_button6.Bind(wx.EVT_BUTTON, self.m_button6OnButtonClick)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def m_button3OnButtonClick(self, event):
window = MyFrame37(None)
window.Show()
def m_button4OnButtonClick(self, event):
window = MyFrame39(None)
window.Show()
def m_button5OnButtonClick(self, event):
window = MyFrame41(None)
window.Show()
def m_button6OnButtonClick(self, event):
exit()
#测试
if __name__=='__main__':
app=wx.App()
window=MyFrame33(None)
window.Show()
app.MainLoop()
2 运行结果
二 更新数据表名称
1 界面代码
# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
from Update_Table import Update_Table
from Check_Database import Check_Database
from Notice import MyFrame3
###########################################################################
## Class MyFrame37
###########################################################################
class MyFrame37(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
pos=wx.DefaultPosition,size=wx.Size(571, 459),
style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer11 = wx.BoxSizer(wx.VERTICAL)
bSizer12 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText10 = wx.StaticText(self, wx.ID_ANY, u"所有的TABLE",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText10.Wrap(-1)
self.m_staticText10.SetFont(wx.Font(15, 74, 90, 90, False, "Sans"))
bSizer12.Add(self.m_staticText10, 0, wx.ALL, 5)
self.m_textCtrl7 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(800, 200),
style=wx.TE_READONLY|wx.TE_MULTILINE)
bSizer12.Add(self.m_textCtrl7, 0, wx.ALL, 5)
bSizer11.Add(bSizer12, 0, wx.EXPAND, 5)
bSizer13 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText11 = wx.StaticText(self, wx.ID_ANY, u"输入原TABLE",
wx.DefaultPosition, wx.Size(200, 50), 0)
self.m_staticText11.Wrap(-1)
bSizer13.Add(self.m_staticText11, 0, wx.ALL, 5)
self.m_textCtrl8 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(150, 50), 0)
bSizer13.Add(self.m_textCtrl8, 0, wx.ALL, 5)
bSizer11.Add(bSizer13, 0, wx.EXPAND, 5)
bSizer14 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText12 = wx.StaticText(self, wx.ID_ANY,
u"输入修改后的TABLE", wx.DefaultPosition,
wx.Size(200, 50), 0)
self.m_staticText12.Wrap(-1)
bSizer14.Add(self.m_staticText12, 0, wx.ALL, 5)
self.m_textCtrl10 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(150, 50), 0)
bSizer14.Add(self.m_textCtrl10, 0, wx.ALL, 5)
bSizer11.Add(bSizer14, 0, wx.EXPAND, 5)
bSizer15 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText14 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(220, -1), 0)
self.m_staticText14.Wrap(-1)
bSizer15.Add(self.m_staticText14, 0, wx.ALL, 5)
self.m_button8 = wx.Button(self, wx.ID_ANY, u"确定",
wx.DefaultPosition, wx.Size(100, 50), 0)
bSizer15.Add(self.m_button8, 0, wx.ALL, 5)
bSizer11.Add(bSizer15, 0, wx.EXPAND, 5)
self.SetSizer(bSizer11)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.m_button8.Bind(wx.EVT_BUTTON, self.m_button8OnButtonClick)
#######################Check_Database###############################
check_database=Check_Database('show tables')
show=''
for i in range(0,len(check_database.return_result)):
show+=check_database.return_result[i]
self.m_textCtrl7.SetValue(show)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def m_button8OnButtonClick(self, event):
sql="rename table %s to %s"%(self.m_textCtrl8.GetValue(),
self.m_textCtrl10.GetValue())
update=Update_Table(sql)
notice=MyFrame3(None)
notice.Show()
#测试
if __name__=='__main__':
app=wx.App()
window=MyFrame37(None)
window.Show()
app.MainLoop()
2 测试结果
三 数据库操作
1 代码
# -*- coding: UTF-8 -*-
import MySQLdb
from ReadCode import ReadCode
from Notice import MyFrame3
class Update_Table():
def __init__(self,sql):
readcode=ReadCode()
Line=readcode.return_line()
try:
db = MySQLdb.connect("localhost","%s"%Line[0],
"%s"%Line[1],"%s"%Line[2])
except:
notice=MyFrame3(None,'请检查主面板的用户名、'
'密码、DATABASE是否输入!')
notice.Show()
else:
# 使用cursor()方法获取操作游标
cursor = db.cursor()
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
四 修改表的字段
1 代码
# -*- coding: utf-8 -*-
##############################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
##############################################################
import wx
import wx.xrc
from Check_Database import Check_Database
from Check_Desc import Check_Desc
from Save_Document import SaveDocument
from Notice import MyFrame3
#############################################################
## Class MyFrame41
#############################################################
class MyFrame41(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY,
title=wx.EmptyString,
pos=wx.DefaultPosition,
size=wx.Size(560, 521),
style=wx.DEFAULT_FRAME_STYLE
| wx.TAB_TRAVERSAL)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer23 = wx.BoxSizer(wx.VERTICAL)
bSizer7 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText5 = wx.StaticText(self, wx.ID_ANY,
u"所有的表名如下:",
wx.DefaultPosition,
wx.DefaultSize, 0)
self.m_staticText5.Wrap(-1)
self.m_staticText5.SetFont(wx.Font(14, 74, 90, 90,
False, "Sans"))
bSizer7.Add(self.m_staticText5, 0, wx.ALL, 5)
self.m_textCtrl5 = wx.TextCtrl(self, wx.ID_ANY,
wx.EmptyString,
wx.DefaultPosition,
wx.Size(800, 150),
style=wx.TE_MULTILINE
|wx.TE_READONLY)
bSizer7.Add(self.m_textCtrl5, 0, wx.ALL, 5)
bSizer23.Add(bSizer7, 0, wx.EXPAND, 5)
bSizer24 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText21 = wx.StaticText(self, wx.ID_ANY,
u"请输入表名查看字段",
wx.DefaultPosition,
wx.Size(200, 50), 0)
self.m_staticText21.Wrap(-1)
self.m_staticText21.SetFont(wx.Font(14, 74, 90, 90,
False, "Sans"))
bSizer24.Add(self.m_staticText21, 0, wx.ALL, 5)
self.m_textCtrl17 = wx.TextCtrl(self, wx.ID_ANY,
wx.EmptyString,
wx.DefaultPosition,
wx.Size(150, 50), 0)
bSizer24.Add(self.m_textCtrl17, 0, wx.ALL, 5)
self.m_button11 = wx.Button(self, wx.ID_ANY, u"确定",
wx.DefaultPosition,
wx.Size(100, 50), 0)
bSizer24.Add(self.m_button11, 0, wx.ALL, 5)
bSizer23.Add(bSizer24, 0, wx.EXPAND, 5)
bSizer25 = wx.BoxSizer(wx.VERTICAL)
self.m_textCtrl19 = wx.TextCtrl(self, wx.ID_ANY,
wx.EmptyString,
wx.DefaultPosition,
wx.Size(800, 50),
style=wx.TE_MULTILINE
|wx.TE_READONLY)
bSizer25.Add(self.m_textCtrl19, 0, wx.ALL, 5)
bSizer23.Add(bSizer25, 0, wx.EXPAND, 5)
bSizer26 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText22 = wx.StaticText(self, wx.ID_ANY,
u"请输入想要更新的字段",
wx.DefaultPosition,
wx.Size(150, 50), 0)
self.m_staticText22.Wrap(-1)
bSizer26.Add(self.m_staticText22, 0, wx.ALL, 5)
self.m_textCtrl20 = wx.TextCtrl(self, wx.ID_ANY,
wx.EmptyString,wx.DefaultPosition,wx.Size(150, 50), 0)
bSizer26.Add(self.m_textCtrl20, 0, wx.ALL, 5)
bSizer23.Add(bSizer26, 0, wx.EXPAND, 5)
bSizer27 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText23 = wx.StaticText(self, wx.ID_ANY,
u"请输入更新后字段的名称与数据类型、主键、自增等",
wx.DefaultPosition,
wx.Size(150, 50), 0)
self.m_staticText23.Wrap(-1)
bSizer27.Add(self.m_staticText23, 0, wx.ALL, 5)
self.m_textCtrl21 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition,
wx.Size(300, 50), 0)
bSizer27.Add(self.m_textCtrl21, 0, wx.ALL, 5)
bSizer23.Add(bSizer27, 0, wx.EXPAND, 5)
bSizer28 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText24 = wx.StaticText(self, wx.ID_ANY,
wx.EmptyString,
wx.DefaultPosition, wx.Size(200, 50), 0)
self.m_staticText24.Wrap(-1)
bSizer28.Add(self.m_staticText24, 0, wx.ALL, 5)
self.m_button12 = wx.Button(self, wx.ID_ANY, u"确定",
wx.DefaultPosition, wx.Size(100, 50), 0)
bSizer28.Add(self.m_button12, 0, wx.ALL, 5)
bSizer23.Add(bSizer28, 1, wx.EXPAND, 5)
self.SetSizer(bSizer23)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.m_button11.Bind(wx.EVT_BUTTON, self.m_button11OnButtonClick)
self.m_button12.Bind(wx.EVT_BUTTON, self.m_button12OnButtonClick)
####################Check_Database#######################
check_database=Check_Database('show tables')
show=''
for i in range(0,len(check_database.return_result)):
show+=check_database.return_result[i]
self.m_textCtrl5.SetValue(show)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def m_button11OnButtonClick(self, event):
table_name=self.m_textCtrl17.GetValue()
check=Check_Desc(table_name)
result=''
for i in range(0,len(check.return_result)):
result+=check.return_result[i]
self.m_textCtrl19.SetValue(result)
def m_button12OnButtonClick(self, event):
sql="alter table %s change %s %s"%(self.m_textCtrl17.GetValue(),
self.m_textCtrl20.GetValue(),
self.m_textCtrl21.GetValue())
save=SaveDocument(sql)
notice=MyFrame3(None)
notice.Show()
#测试
if __name__=='__main__':
app=wx.App()
window=MyFrame41(None)
window.Show()
app.MainLoop()
2 运行结果
五 修改表的一条数据
1 代码
# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
from Check_Database import Check_Database
from Check_Document import Check_Document
from Check_Desc import Check_Desc
from Save_Document import SaveDocument
from Notice import MyFrame3
###########################################################################
## Class MyFrame39
###########################################################################
class MyFrame39(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
pos=wx.DefaultPosition,size=wx.Size(605, 716),
style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer16 = wx.BoxSizer(wx.VERTICAL)
bSizer8 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, u"所有的表如下:",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText7.Wrap(-1)
bSizer8.Add(self.m_staticText7, 0, wx.ALL, 5)
self.m_textCtrl6 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(800, 100),
style=wx.TE_READONLY|wx.TE_MULTILINE)
bSizer8.Add(self.m_textCtrl6, 0, wx.ALL, 5)
bSizer16.Add(bSizer8, 0, wx.EXPAND, 5)
bSizer22 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText20 = wx.StaticText(self, wx.ID_ANY, u"请输入想要更新数据的表名",
wx.DefaultPosition, wx.Size(200, 50), 0)
self.m_staticText20.Wrap(-1)
bSizer22.Add(self.m_staticText20, 0, wx.ALL, 5)
self.m_textCtrl16 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(120, 50), 0)
bSizer22.Add(self.m_textCtrl16, 0, wx.ALL, 5)
self.m_button10 = wx.Button(self, wx.ID_ANY, u"确定", wx.DefaultPosition,
wx.Size(100, 50), 0)
bSizer22.Add(self.m_button10, 0, wx.ALL, 5)
bSizer16.Add(bSizer22, 0, wx.EXPAND, 5)
bSizer17 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText15 = wx.StaticText(self, wx.ID_ANY, u"表的数据如下",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText15.Wrap(-1)
self.m_staticText15.SetFont(wx.Font(13, 74, 90, 90, False, "Sans"))
bSizer17.Add(self.m_staticText15, 0, wx.ALL, 5)
self.m_textCtrl12 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(800, 200),
style=wx.TE_READONLY|wx.TE_MULTILINE)
bSizer17.Add(self.m_textCtrl12, 0, wx.ALL, 5)
bSizer16.Add(bSizer17, 0, wx.EXPAND, 5)
bSizer18 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText16 = wx.StaticText(self, wx.ID_ANY,
u"请输入想要更新的数据的唯一条件",
wx.DefaultPosition, wx.Size(230, 50), 0)
self.m_staticText16.Wrap(-1)
bSizer18.Add(self.m_staticText16, 0, wx.ALL, 5)
self.m_textCtrl13 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(150, 50), 0)
bSizer18.Add(self.m_textCtrl13, 0, wx.ALL, 5)
bSizer16.Add(bSizer18, 0, wx.EXPAND, 5)
bSizer19 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText17 = wx.StaticText(self, wx.ID_ANY,
u"请输入想要更新的的数据的相应字段",
wx.DefaultPosition, wx.Size(230, 50), 0)
self.m_staticText17.Wrap(-1)
bSizer19.Add(self.m_staticText17, 0, wx.ALL, 5)
self.m_textCtrl14 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(150, 50), 0)
bSizer19.Add(self.m_textCtrl14, 0, wx.ALL, 5)
bSizer16.Add(bSizer19, 0, wx.EXPAND, 5)
bSizer20 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText18 = wx.StaticText(self, wx.ID_ANY,
u"请输入想更新后数据值",
wx.DefaultPosition, wx.Size(230, 50), 0)
self.m_staticText18.Wrap(-1)
bSizer20.Add(self.m_staticText18, 0, wx.ALL, 5)
self.m_textCtrl15 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(150, 50), 0)
bSizer20.Add(self.m_textCtrl15, 0, wx.ALL, 5)
bSizer16.Add(bSizer20, 0, wx.EXPAND, 5)
bSizer21 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText19 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
wx.DefaultPosition, wx.Size(200, -1), 0)
self.m_staticText19.Wrap(-1)
bSizer21.Add(self.m_staticText19, 0, wx.ALL, 5)
self.m_button9 = wx.Button(self, wx.ID_ANY, u"确定", wx.DefaultPosition,
wx.Size(100, 50), 0)
bSizer21.Add(self.m_button9, 0, wx.ALL, 5)
bSizer16.Add(bSizer21, 0, wx.EXPAND, 5)
self.SetSizer(bSizer16)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.m_button10.Bind(wx.EVT_BUTTON, self.m_button10OnButtonClick)
self.m_button9.Bind(wx.EVT_BUTTON, self.m_button9OnButtonClick)
####################Check_Database##########################
check_database=Check_Database('show tables')
show=''
for i in range(0,len(check_database.return_result)):
show+=check_database.return_result[i]
self.m_textCtrl6.SetValue(show)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def m_button10OnButtonClick(self, event):
table_name=self.m_textCtrl16.GetValue()
check1=Check_Document(table_name)
check2=Check_Desc(table_name)
result=''
for j in range(0,len(check2.return_result)):
result+=check2.return_result[j]
for i in range(0,len(check1.return_result)):
result+=str(check1.return_result[i])
self.m_textCtrl12.SetValue(result)
def m_button9OnButtonClick(self, event):
TiaoJian=self.m_textCtrl13.GetValue()
ZiDuan=self.m_textCtrl14.GetValue()
Values=self.m_textCtrl15.GetValue()
sql="update %s set %s=%s where %s"%(self.m_textCtrl16.GetValue(),
ZiDuan,Values,TiaoJian)
save=SaveDocument(sql)
notice=MyFrame3(None)
notice.Show()
#测试
if __name__=='__main__':
app=wx.App()
window=MyFrame39(None)
window.Show()
app.MainLoop()
2 运行结果