CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

HOW TO:优化这段代码?(登录窗体源码)

楼主jonathonc(bachelor)2005-06-15 18:57:44 在 .NET技术 / VB.NET 提问

本人决定将毕业设计源码陆续公开,希望高手指点一二,比如代码优化、程序安全性等方面。  
   
  开发工具:VB.NET   2003+Access2003。  
  数据库文件名:x.mdb,密码:xxx。表Accounts有三列:UserName(主键),PassWd,Purview(数据类型:是/否);表Log有四列:UserName、DateTime(数据类型:日期/时间)、Operation、Category  
   
  启动对象:Module1  
   
  Module   Module1  
   
          Friend   Sub   Main()  
   
                  Dim   Createnew   As   Boolean   =   False  
                  Dim   mtx   As   New   Threading.Mutex(True,   Application.ProductName,   Createnew) '这句是别人教的,请高手解释一下具体含意  
                  If   Not   Createnew   Then  
                          MessageBox.Show("程序已经启动!")  
                          End  
                  End   If  
   
                  Dim   frmLogin   As   New   Login  
                  frmLogin.ShowDialog()  
                  Dim   frmMain   As   New   Main  
                  frmMain.ShowDialog()  
          End   Sub  
   
   
          Friend   User   As   String '程序使用者的用户名  
          Friend   Admin   As   Boolean '程序使用者的权限  
   
   
  End   Module  
   
  Login窗体中有Combobox1(用户名)、Textbox1(密码)、Button1(确定)、Button2(取消)  
   
   
  Imports   System.Data.OleDb  
   
  Public   Class   Login  
          Inherits   System.Windows.Forms.Form  
   
  'Windows窗体设计器生成的代码  
   
          Dim   OleDbConnection1   As   New   OleDbConnection("Provider=Microsoft.Jet.oledb.4.0;data   source="   &   Application.StartupPath   &   "\x.mdb;Jet   OLEDB:Database   Password=xxx")  
          Dim   OleDbDataAdapter1   As   New   OleDbDataAdapter  
          Dim   DataSet1   As   New   DataSet("DataSet1")  
   
          Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click  
                  If   TextBox1.Text   =   DataSet1.Tables(0).Rows(ComboBox1.SelectedIndex)("PassWd")   Then  
                          User   =   ComboBox1.Text  
                          If   DataSet1.Tables(0).Rows(ComboBox1.SelectedIndex)("Purview")   =   True   Then   Admin   =   True  
                          Me.Close()  
                  Else  
                          Try  
                                  Dim   Logging   As   New   OleDbCommand("insert   into   Log   values('"   &   ComboBox1.Text   &   "',"   &   Now.ToOADate   &   ",'以密码"   &   Chr(-24144)   &   TextBox1.Text   &   Chr(-24143)   &   "登录失败','登录/退出')",   OleDbConnection1)  
                                  OleDbConnection1.Open()  
                                  Logging.ExecuteNonQuery()  
                          Catch   ex   As   Exception  
                                  MessageBox.Show(ex.Message)  
                          Finally  
                                  OleDbConnection1.Close()  
                          End   Try  
                          Static   Times   As   Integer  
                          If   Times   =   2   Then  
                                  MessageBox.Show("无法验证您的身份,程序将退出!",   Me.Text,   MessageBoxButtons.OK,   MessageBoxIcon.Error)  
                                  End  
                          End   If  
                          MessageBox.Show("密码错误请重试!您还有"   &   2   -   Times   &   "次机会...",   Me.Text,   MessageBoxButtons.OK,   MessageBoxIcon.Warning)  
                          Times   +=   1  
                          TextBox1.Focus()  
                  End   If  
          End   Sub  
   
          Private   Sub   FrmLgn_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                  Try  
                          Dim   Selecting   As   New   OleDbCommand("select   *   from   Accounts   order   by   username   asc",   OleDbConnection1)  
                          OleDbDataAdapter1.SelectCommand   =   Selecting  
                          OleDbDataAdapter1.Fill(DataSet1,   "Accounts")  
                          ComboBox1.DataSource   =   DataSet1  
                          ComboBox1.DisplayMember   =   "Accounts.UserName"  
                  Catch   ex   As   Exception  
                          MessageBox.Show(ex.Message)  
                  End   Try  
          End   Sub  
   
          Private   Sub   Login_Closed(ByVal   sender   As   Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Closed  
                  If   User   =   ""   Then   End  
          End   Sub  
   
        Private   Sub   Button2_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button2.Click  
                  End  
          End   Sub  
   
  End   Class 问题点数:20、回复次数:6Top

1 楼KissXYL(挚爱凝忆)回复于 2005-06-15 19:26:33 得分 6

太长了。你要优化哪部分。  
      Dim   mtx   As   New   Threading.Mutex(True,   Application.ProductName,   Createnew) '这句是别人教的,请高手解释一下具体含意  
  这句是避免重复创建线程的。别的太晕没看Top

2 楼ccghghgj(CSDN论坛小助手、验证码识别)回复于 2005-06-16 00:40:28 得分 4

当个例子看看还可以  
  做在项目里面就差远了  
   
  ===================  
  本回复通过csdn助手发布  
  http://qqwwee.com/csdn.net  
  最后更新   2005.06.16Top

3 楼jonathonc(bachelor)回复于 2005-06-16 12:29:28 得分 0

回复人:   KissXYL(挚爱凝忆)    
  太长了。你要优化哪部分。  
  ===================  
   
  优化哪部分都行,只要觉得有更好的方法来实现相同的目的,敬请不吝赐教。Top

4 楼jonathonc(bachelor)回复于 2005-06-17 15:35:20 得分 0

自己用语言“将帐子提前”一下Top

5 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-06-17 15:54:00 得分 9

建议把数据连接和检索弄到类里面去或者组件中去操作。或者数据库连接字符串设置为全局的。其他的需要精简下!Top

6 楼pupo(泡泡)回复于 2005-06-17 17:31:17 得分 1

密码都绑到combo上去了,人家一实例化你这个窗体,谁的密码都知道了Top

相关问题

  • 代码优化
  • 在窗体中按下鼠标左键拖动窗体代码???
  • 怎么用代码添加窗体呀?
  • 怎样用代码“画”窗体????
  • 求代码优化!
  • 源码相送!!从MDI中的子窗体,调用DLL中的子窗体!
  • 我想在一窗体中编写代码对另一窗体进行操作
  • 怎样作一个不规则的窗体,最好有源码
  • 谁有VC的不规则窗体的源码。30分啊!
  • 谁有磁性窗体的VB源码(50相送)

关键词

  • 优化
  • 代码
  • 密码
  • 数据
  • application
  • 窗体
  • createnew
  • 程序
  • 高手
  • 优化哪

得分解答快速导航

  • 帖主:jonathonc
  • KissXYL
  • ccghghgj
  • hamadou
  • pupo

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo