数据库数据库应用系统开发.docx
《数据库数据库应用系统开发.docx》由会员分享,可在线阅读,更多相关《数据库数据库应用系统开发.docx(48页珍藏版)》请在冰豆网上搜索。
![数据库数据库应用系统开发.docx](https://file1.bdocx.com/fileroot1/2023-2/3/49953e3e-8e54-452d-8ded-ea73afdb2f18/49953e3e-8e54-452d-8ded-ea73afdb2f181.gif)
数据库数据库应用系统开发
第13章数据库应用系统开发
PublicSubCreateSqlConnection()
DimStrconnAsString'定义连接字符串
Strconn="DataSource=localhost;InitialCatalog=Sales;UserID=sa;Password=csulibtd;"
DimcnnAsNewSqlConnection()'创建连接对象实例
cnn.ConnectionString=Strconn'设置连接字符串属性
cnn.Open()'打开连接
cnn.Close()'关闭连接
EndSub
PublicSubCreateSqlCommand()
DimStrconnAsString
Strconn="DataSource=localhost;InitialCatalog=Sales;UserID=sa;Password=csulibtd;"
DimcnnAsNewSqlConnection()
cnn.ConnectionString=Strconn
cnn.Open()
DimMycommandAsSqlCommand'声明SqlCommand类型变量
Mycommand=NewSqlCommand("Selectcount(*)fromemployee")'创建SqlCommand类的实例
Mycommand.Connection=cnn'设置变量的Connection属性
Mycommand.CommandTimeout=15'设置变量的CommandTimeout属性
DimRecordcount=CInt(Mycommand.ExecuteScalar())'执行Mycommand对象并放回一个单一值
MsgBox(Recordcount)'显示结果
cnn.Close()
EndSub
PublicSubCreateSqlDataReader()
DimStrconnAsString
Strconn="DataSource=localhost;InitialCatalog=Sales;UserID=sa;Password=csulibtd;"
DimcnnAsNewSqlConnection()
cnn.ConnectionString=Strconn
cnn.Open()
DimMycommandAsSqlCommand
Mycommand=NewSqlCommand("SelectEmployee_Name,Sexfromemployee")
Mycommand.Connection=cnn
DimStrResultAsString'声明一个字符串变量
DimMydatareaderAsSqlDataReader'声明一个SqlDataReader类型的变量
'创建一个SqlDataReader实例
Mydatareader=Mycommand.ExecuteReader(CommandBehavior.CloseConnection)
DoWhileMydatareader.Read=True'循环读取结果记录
'获取列数据
StrResult=Mydatareader.GetString(0)&""&Mydatareader.GetString
(1)
Console.WriteLine(StrResult)'输出结果
Loop
cnn.Close()
EndSub
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimStrconnAsString
Strconn="DataSource=localhost;InitialCatalog=Sales;UserID=sa;Password=csulibtd;"
DimcnnAsNewSqlConnection()
cnn.ConnectionString=Strconn
cnn.Open()
DimMycommandAsSqlCommand=NewSqlCommand("Select*fromemployee")
Mycommand.Connection=cnn
DimdaAsSqlDataAdapter=NewSqlDataAdapter()'创建SqlDataAdapter对象
DimdsAsDataSet=NewDataSet()'创建DataSet对象
da.SelectCommand=Mycommand'它设置了SqlDataAdapter对象的SelectCommand属性
da.Fill(ds,"employee")'调用SqlDataAdapter对象的Fill方法从数据源读取数据并将其填充到数据集中。
employee是数据集中的表的名称
EndSub
(1)创建书商图书基本信息表bookseller_bookinfo
CREATETABLEbookseller_bookinfo(
rec_idbigintidentity(1,1)notnull,
isbnvarchar(20)null,
booknamevarchar(200)null,
authorvarchar(50)null,
publisher_datevarchar(50)null,
publishervarchar(50)null,
class_namevarchar(50)null,
book_pricenumericDEFAULT0,
book_numintDEFAULT0,
providervarchar(50)null
)
(2)创建图书馆图书馆藏基本信息表library_bookinfo
CREATETABLElibrary_bookinfo(
rec_idbigintidentity(1,1)notnull,
isbnvarchar(20)null,
booknamevarchar(200)null,
authorvarchar(50)null,
publisher_datevarchar(50)null,
publishervarchar(50)null,
class_namevarchar(50)null,
book_pricenumericDEFAULT0,
book_numintDEFAULT0,
providervarchar(50)null
)
(3)创建用户注册表userenroll_info
CREATETABLEuserenroll_info(
rec_idbigintidentity(1,1)notnull,
user_namevarchar(50)notnull,
user_passwordvarchar(50)null
user_memovarchar(200)null
)
PrivateSubExitMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesExitMenuItem.Click
Application.Exit()
EndSub
①SQLServer2005服务器连接字符串函数
PublicFunctionConnectString()AsString
ConnectString="DataSource=202.197.77.1;InitialCatalog=Sales;UserID=sa;Password=csulibtd;"
'设置SQLServer2005数据库链接字符串,此字符串也可保存在目录文件中
EndFunction
②SQL命令执行函数
PublictxtSQLAsString'存放SQL语句
PublicDBSetAsDataSet'查询得到的记录集
PublicErrorMsgAsString'存放错误信息
PublicFunctionExecuteSQL(ByValstrSQLAsString,ByReferrMsgAsString)AsInteger
'函数执行SQL的INSERT、DELETE、UPDATE和SELECT语句
'对于INSERT、DELETE、UPDATE语句,ExecuteSQL返回更新的记录数:
-1表示程序异常;表示更新失败;大于表示操作成功,更新的记录数
'对于SELECT语句:
DBSet为返回的数据集;ExecuteSQL为返回的查询记录数。
DimcnnAsSqlClient.SqlConnection
DimcmdAsNewSqlClient.SqlCommand()
DimadptAsSqlClient.SqlDataAdapter
DimrstAsNewDataSet()
DimSplitSQL()AsString
errMsg=""
Try
SplitSQL=Split(strSQL)
cnn=NewSqlClient.SqlConnection(ConnectString())
IfInStr("INSERT,DELETE,UPDATE",UCase$(SplitSQL(0)))Then
cmd.Connection=cnn
cmd.Connection.Open()
cmd.CommandText=strSQL
ExecuteSQL=cmd.ExecuteNonQuery()'返回更新数据记录条数
Else
adpt=NewSqlClient.SqlDataAdapter(strSQL,cnn)
adpt.Fill(rst)
ExecuteSQL=rst.Tables(0).Rows.Count'返回查询记录条数
DBSet=rst
EndIf
CatchexAsException
errMsg=ex.Message
ExecuteSQL=-1'表示执行SQL失败
Finally
rst=Nothing
cnn=Nothing
EndTry
EndFunction
③启动函数SubMain
Submain()
DimmfAsNewRegister
mf.ShowDialog()
EndSub
PrivateSubcmdOK_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
IfTextBox1.Text=""OrTextBox2.Text=""Then
MsgBox("请输入用户名或密码!
")
ExitSub
EndIf
DimcnnAsNewSqlConnection()
DimMycommandAsSqlCommand
cnn.ConnectionString=ConnectString()
cnn.Open()
txtSQL="selectcount(*)fromuserenroll_infowhereuser_name='"&TextBox1.Text&"'anduser_password='"&TextBox2.Text&"'"
Mycommand=NewSqlCommand(txtSQL)
Mycommand.Connection=cnn
DimRecordcount=CInt(Mycommand.ExecuteScalar())'返回记录条数
IfRecordcount=1Then'如找到用户名和密码相匹配的记录则登录成功
MdiForm.Show()'显示主窗体
Finalize()'释放登录窗体的资源
Else
MsgBox("用户名或密码错误!
")
ExitSub
EndIf
EndSub
PrivateSubcmdCancel_Click(……)'退出系统
Application.Exit()'退出应用程序
EndSub
PrivateSubcmdAdd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
DimRecordnumAsInteger
IfTextBox1.Text=""Then
MsgBox("请输入账号!
")
ExitSub
EndIf
IfTextBox2.Text=""Then
MsgBox("请输入密码!
")
ExitSub
EndIf
IfTextBox3.Text=""Then
MsgBox("请输入用户说明!
")
ExitSub
EndIf
'查看用户名在用户表userenroll_info中已存在
txtSQL="select*fromuserenroll_infowhereuser_name='"&TextBox1.Text&"'"
Recordnum=ExecuteSQL(txtSQL,ErrorMsg)'返回值为SQL检索记录数
IfRecordnum>0Then
'用户已存在,退出
MsgBox("用户已存在!
")
ExitSub
Else
'用户不存在,新增
txtSQL="insertintouserenroll_info(user_name,user_password,user_memo)values('"&TextBox1.Text&"','"&TextBox2.Text&"','"&TextBox3.Text&"')"
Recordnum=ExecuteSQL(txtSQL,ErrorMsg)
IfRecordnum=1Then
MsgBox("新增用户成功!
")
Else
MsgBox("新增用户失败!
")
EndIf
EndIf
EndSub
PrivateSubcmdExit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
Me.Close()'关闭此窗口
EndSub
PrivateSubUserModifyForm_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
DimcnAsNewSqlConnection'定义一个到数据库的连接
DimsearchsqlAsString'定义SQL语句字符串
DimcmdAsSqlCommand'定义一个数据库操作命令
DimdrAsSqlDataReader'定义一个数据集读写器
searchsql="selectuser_namefromuserenroll_info"
Try
cn.ConnectionString=ConnectString()
cn.Open()
cmd=NewSqlCommand(searchsql,cn)
dr=cmd.ExecuteReader()
DoWhiledr.Read()
'在ComboBox控件中添加数据库中检索到的用户账号
Me.ComboBox1.Items.Add(dr.GetValue(0))
Loop
dr.Close()
CatchexAsException
MsgBox(ex.Message)
EndTry
cn.Dispose()
EndSub
PrivateSubComboBox1_SelectionChangeCommitted(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesComboBox1.SelectionChangeCommitted
DimcnAsNewSqlConnection'定义一个到数据库的连接
DimsearchsqlAsString'定义SQL语句字符串
DimcmdAsSqlCommand'定义一个数据库操作命令
DimdrAsSqlDataReader'定义一个数据集读写器
searchsql="selectuser_name,user_password,user_memofromuserenroll_infowhereuser_name='"&ComboBox1.SelectedItem&"'"
Try
cn.ConnectionString=ConnectString()
cn.Open()
cmd=NewSqlCommand(searchsql,cn)
dr=cmd.ExecuteReader()
DoWhiledr.Read()
'读取数据库中的账户信息,并将其写入到显示控件中
TextBox1.Text=dr.GetString
(1)
TextBox2.Text=dr.GetString
(2)
Loop
dr.Close()
CatchexAsException
MsgBox(ex.Message)
EndTry
cn.Dispose()
EndSub
PrivateSubcmdModify_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
DimcnAsNewSqlConnection'定义一个到数据库的连接
DimsearchsqlAsString'定义SQL语句字符串
DimcmdAsSqlCommand'定义一个数据库操作命令
searchsql="updateuserenroll_infosetuser_password='"&TextBox1.Text&"',user_memo='"&TextBox2.Text&"'whereuser_name='"&ComboBox1.SelectedItem&"'"
Try
cn.ConnectionString=ConnectString()
cn.Open()
cmd=NewSqlCommand(searchsql,cn)'创建SqlCommand类实例
cmd.ExecuteNonQuery()'执行cmd对象
MsgBox("记录修改成功!
")
CatchexAsException
MsgBox(ex.Message)
EndTry
cn.Dispose()
EndSub
PrivateSubcmdDelete_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
DimcnAsNewSqlConnection'定义一个到数据库的连接
DimsearchsqlAsString'定义SQL语句字符串
DimcmdAsSqlCommand'定义一个数据库操作命令
searchsql="deleteuserenroll_infowhereuser_name='"&ComboBox1.SelectedItem&"'"
Try
cn.ConnectionString=ConnectString()
cn.Open()
cmd=NewSqlCommand(searchsql,cn)'创建SqlCommand类实例
cmd.ExecuteNonQuery()'执行cmd对象
GetUser()'更新下拉列表框中的用户列表
MsgBox("记录删除成功!
")
CatchexAsException
MsgBox(ex.Message)
EndTry
cn.Dispose()
EndSub
PrivateSubGetUser()'取账号信息,添加到ComboBox1下拉列表框
DimcnAsNewSqlConnection'定义一个到数据库的连接
DimsearchsqlAsString'定义SQL语句字符串
DimcmdAsSqlCommand'定义一个数据库操作命令
DimdrAsSqlDataReader'定义一个数据集读写器
searchsql="selectuser_namefromuserenroll_info"
Try
cn.ConnectionString=ConnectString()
cn.Open()
cmd=NewSqlCommand(searchsql,cn)
dr=cmd.ExecuteReader()
ComboBox1.Items.Clear()
TextBox1.Text=""
TextBox2.Text=""
DoWhiledr.Read()
'在ComboBox控件中添加数据库中检索到的用户账号
Me.ComboBox1.Items.Add(dr.GetValue(0))
Loop
dr.Close()
CatchexAsException
MsgBox(ex.Message)
EndTry
cn.Dispose()
EndSub
PrivateSubcmdxjAdd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
'判断是否输入了ISBN号
IfTrim(TextBox1.Tex