System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 74abb2dee411fa601b0899fd0243cb0d4d491ee5:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 41 44 4f  *********. * ADO
0040: 2e 4e 45 54 20 32 2e 30 20 44 61 74 61 20 50 72  .NET 2.0 Data Pr
0050: 6f 76 69 64 65 72 20 66 6f 72 20 53 51 4c 69 74  ovider for SQLit
0060: 65 20 56 65 72 73 69 6f 6e 20 33 2e 58 0a 20 2a  e Version 3.X. *
0070: 20 57 72 69 74 74 65 6e 20 62 79 20 52 6f 62 65   Written by Robe
0080: 72 74 20 53 69 6d 70 73 6f 6e 20 28 72 6f 62 65  rt Simpson (robe
0090: 72 74 40 62 6c 61 63 6b 63 61 73 74 6c 65 73 6f  rt@blackcastleso
00a0: 66 74 2e 63 6f 6d 29 0a 20 2a 20 0a 20 2a 20 52  ft.com). * . * R
00b0: 65 6c 65 61 73 65 64 20 74 6f 20 74 68 65 20 70  eleased to the p
00c0: 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c 20 75 73  ublic domain, us
00d0: 65 20 61 74 20 79 6f 75 72 20 6f 77 6e 20 72 69  e at your own ri
00e0: 73 6b 21 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  sk!. ***********
00f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0100: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0110: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a  *************/..
0120: 6e 61 6d 65 73 70 61 63 65 20 53 51 4c 69 74 65  namespace SQLite
0130: 2e 44 65 73 69 67 6e 65 72 0a 7b 0a 20 20 75 73  .Designer.{.  us
0140: 69 6e 67 20 53 79 73 74 65 6d 3b 0a 20 20 75 73  ing System;.  us
0150: 69 6e 67 20 53 79 73 74 65 6d 2e 43 6f 6c 6c 65  ing System.Colle
0160: 63 74 69 6f 6e 73 2e 47 65 6e 65 72 69 63 3b 0a  ctions.Generic;.
0170: 20 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 43    using System.C
0180: 6f 6d 70 6f 6e 65 6e 74 4d 6f 64 65 6c 3b 0a 20  omponentModel;. 
0190: 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 44 61   using System.Da
01a0: 74 61 3b 0a 20 20 75 73 69 6e 67 20 53 79 73 74  ta;.  using Syst
01b0: 65 6d 2e 44 72 61 77 69 6e 67 3b 0a 20 20 75 73  em.Drawing;.  us
01c0: 69 6e 67 20 53 79 73 74 65 6d 2e 54 65 78 74 3b  ing System.Text;
01d0: 0a 20 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e  .  using System.
01e0: 57 69 6e 64 6f 77 73 2e 46 6f 72 6d 73 3b 0a 20  Windows.Forms;. 
01f0: 20 75 73 69 6e 67 20 4d 69 63 72 6f 73 6f 66 74   using Microsoft
0200: 2e 56 69 73 75 61 6c 53 74 75 64 69 6f 2e 44 61  .VisualStudio.Da
0210: 74 61 3b 0a 20 20 75 73 69 6e 67 20 53 79 73 74  ta;.  using Syst
0220: 65 6d 2e 57 69 6e 64 6f 77 73 2e 46 6f 72 6d 73  em.Windows.Forms
0230: 2e 44 65 73 69 67 6e 3b 0a 20 20 75 73 69 6e 67  .Design;.  using
0240: 20 4d 69 63 72 6f 73 6f 66 74 2e 56 69 73 75 61   Microsoft.Visua
0250: 6c 53 74 75 64 69 6f 2e 53 68 65 6c 6c 2e 49 6e  lStudio.Shell.In
0260: 74 65 72 6f 70 3b 0a 20 20 75 73 69 6e 67 20 4d  terop;.  using M
0270: 69 63 72 6f 73 6f 66 74 2e 56 69 73 75 61 6c 53  icrosoft.VisualS
0280: 74 75 64 69 6f 3b 0a 20 20 75 73 69 6e 67 20 53  tudio;.  using S
0290: 79 73 74 65 6d 2e 44 61 74 61 2e 43 6f 6d 6d 6f  ystem.Data.Commo
02a0: 6e 3b 0a 0a 20 20 70 75 62 6c 69 63 20 70 61 72  n;..  public par
02b0: 74 69 61 6c 20 63 6c 61 73 73 20 43 68 61 6e 67  tial class Chang
02c0: 65 50 61 73 73 77 6f 72 64 44 69 61 6c 6f 67 20  ePasswordDialog 
02d0: 3a 20 46 6f 72 6d 0a 20 20 7b 0a 20 20 20 20 69  : Form.  {.    i
02e0: 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 50  nternal string P
02f0: 61 73 73 77 6f 72 64 3b 0a 0a 20 20 20 20 70 72  assword;..    pr
0300: 69 76 61 74 65 20 53 51 4c 69 74 65 43 6f 6e 6e  ivate SQLiteConn
0310: 65 63 74 69 6f 6e 50 72 6f 70 65 72 74 69 65 73  ectionProperties
0320: 20 5f 70 72 6f 70 73 3b 0a 0a 20 20 20 20 70 72   _props;..    pr
0330: 69 76 61 74 65 20 73 74 72 69 6e 67 20 47 65 74  ivate string Get
0340: 43 75 72 72 65 6e 74 50 61 73 73 77 6f 72 64 28  CurrentPassword(
0350: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 74 72  ).    {.      tr
0360: 79 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20  y.      {.      
0370: 20 20 72 65 74 75 72 6e 20 5f 70 72 6f 70 73 5b    return _props[
0380: 22 50 61 73 73 77 6f 72 64 22 5d 20 61 73 20 73  "Password"] as s
0390: 74 72 69 6e 67 3b 0a 20 20 20 20 20 20 7d 0a 20  tring;.      }. 
03a0: 20 20 20 20 20 63 61 74 63 68 0a 20 20 20 20 20       catch.     
03b0: 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72   {.        retur
03c0: 6e 20 53 74 72 69 6e 67 2e 45 6d 70 74 79 3b 0a  n String.Empty;.
03d0: 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20        }.    }.. 
03e0: 20 20 20 69 6e 74 65 72 6e 61 6c 20 43 68 61 6e     internal Chan
03f0: 67 65 50 61 73 73 77 6f 72 64 44 69 61 6c 6f 67  gePasswordDialog
0400: 28 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f  (SQLiteConnectio
0410: 6e 50 72 6f 70 65 72 74 69 65 73 20 70 72 6f 70  nProperties prop
0420: 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 5f  s).    {.      _
0430: 70 72 6f 70 73 20 3d 20 70 72 6f 70 73 3b 0a 20  props = props;. 
0440: 20 20 20 20 20 49 6e 69 74 69 61 6c 69 7a 65 43       InitializeC
0450: 6f 6d 70 6f 6e 65 6e 74 28 29 3b 0a 0a 20 20 20  omponent();..   
0460: 20 20 20 70 61 73 73 77 6f 72 64 2e 54 65 78 74     password.Text
0470: 20 3d 20 47 65 74 43 75 72 72 65 6e 74 50 61 73   = GetCurrentPas
0480: 73 77 6f 72 64 28 29 3b 0a 20 20 20 20 7d 0a 0a  sword();.    }..
0490: 20 20 20 20 70 72 69 76 61 74 65 20 76 6f 69 64      private void
04a0: 20 70 61 73 73 77 6f 72 64 5f 54 65 78 74 43 68   password_TextCh
04b0: 61 6e 67 65 64 28 6f 62 6a 65 63 74 20 73 65 6e  anged(object sen
04c0: 64 65 72 2c 20 45 76 65 6e 74 41 72 67 73 20 65  der, EventArgs e
04d0: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 69 66  ).    {.      if
04e0: 20 28 53 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f   (String.IsNullO
04f0: 72 45 6d 70 74 79 28 70 61 73 73 77 6f 72 64 2e  rEmpty(password.
0500: 54 65 78 74 29 20 7c 7c 20 70 61 73 73 77 6f 72  Text) || passwor
0510: 64 2e 54 65 78 74 20 3d 3d 20 47 65 74 43 75 72  d.Text == GetCur
0520: 72 65 6e 74 50 61 73 73 77 6f 72 64 28 29 29 0a  rentPassword()).
0530: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
0540: 63 6f 6e 66 69 72 6d 4c 61 62 65 6c 2e 45 6e 61  confirmLabel.Ena
0550: 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 20 20  bled = false;.  
0560: 20 20 20 20 20 20 70 61 73 73 77 6f 72 64 43 6f        passwordCo
0570: 6e 66 69 72 6d 2e 45 6e 61 62 6c 65 64 20 3d 20  nfirm.Enabled = 
0580: 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 70  false;.        p
0590: 61 73 73 77 6f 72 64 43 6f 6e 66 69 72 6d 2e 54  asswordConfirm.T
05a0: 65 78 74 20 3d 20 53 74 72 69 6e 67 2e 45 6d 70  ext = String.Emp
05b0: 74 79 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20  ty;..        if 
05c0: 28 53 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72  (String.IsNullOr
05d0: 45 6d 70 74 79 28 70 61 73 73 77 6f 72 64 2e 54  Empty(password.T
05e0: 65 78 74 29 20 26 26 20 53 74 72 69 6e 67 2e 49  ext) && String.I
05f0: 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 47 65 74  sNullOrEmpty(Get
0600: 43 75 72 72 65 6e 74 50 61 73 73 77 6f 72 64 28  CurrentPassword(
0610: 29 29 20 3d 3d 20 66 61 6c 73 65 29 0a 20 20 20  )) == false).   
0620: 20 20 20 20 20 20 20 61 63 74 69 6f 6e 2e 54 65         action.Te
0630: 78 74 20 3d 20 56 53 50 61 63 6b 61 67 65 2e 44  xt = VSPackage.D
0640: 65 63 72 79 70 74 3b 0a 20 20 20 20 20 20 20 20  ecrypt;.        
0650: 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 61  else.          a
0660: 63 74 69 6f 6e 2e 54 65 78 74 20 3d 20 53 74 72  ction.Text = Str
0670: 69 6e 67 2e 45 6d 70 74 79 3b 0a 20 20 20 20 20  ing.Empty;.     
0680: 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20   }.      else.  
0690: 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 63 6f      {.        co
06a0: 6e 66 69 72 6d 4c 61 62 65 6c 2e 45 6e 61 62 6c  nfirmLabel.Enabl
06b0: 65 64 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20  ed = true;.     
06c0: 20 20 20 70 61 73 73 77 6f 72 64 43 6f 6e 66 69     passwordConfi
06d0: 72 6d 2e 45 6e 61 62 6c 65 64 20 3d 20 74 72 75  rm.Enabled = tru
06e0: 65 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28  e;..        if (
06f0: 53 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45  String.IsNullOrE
0700: 6d 70 74 79 28 47 65 74 43 75 72 72 65 6e 74 50  mpty(GetCurrentP
0710: 61 73 73 77 6f 72 64 28 29 29 20 3d 3d 20 66 61  assword()) == fa
0720: 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 61  lse).          a
0730: 63 74 69 6f 6e 2e 54 65 78 74 20 3d 20 56 53 50  ction.Text = VSP
0740: 61 63 6b 61 67 65 2e 52 65 45 6e 63 72 79 70 74  ackage.ReEncrypt
0750: 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20  ;.        else. 
0760: 20 20 20 20 20 20 20 20 20 61 63 74 69 6f 6e 2e           action.
0770: 54 65 78 74 20 3d 20 56 53 50 61 63 6b 61 67 65  Text = VSPackage
0780: 2e 45 6e 63 72 79 70 74 3b 0a 20 20 20 20 20 20  .Encrypt;.      
0790: 7d 0a 0a 20 20 20 20 20 20 6f 6b 42 75 74 74 6f  }..      okButto
07a0: 6e 2e 45 6e 61 62 6c 65 64 20 3d 20 28 70 61 73  n.Enabled = (pas
07b0: 73 77 6f 72 64 2e 54 65 78 74 20 3d 3d 20 70 61  sword.Text == pa
07c0: 73 73 77 6f 72 64 43 6f 6e 66 69 72 6d 2e 54 65  sswordConfirm.Te
07d0: 78 74 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20  xt);.    }..    
07e0: 70 72 69 76 61 74 65 20 76 6f 69 64 20 6f 6b 42  private void okB
07f0: 75 74 74 6f 6e 5f 43 6c 69 63 6b 28 6f 62 6a 65  utton_Click(obje
0800: 63 74 20 73 65 6e 64 65 72 2c 20 45 76 65 6e 74  ct sender, Event
0810: 41 72 67 73 20 65 29 0a 20 20 20 20 7b 0a 20 20  Args e).    {.  
0820: 20 20 20 20 50 61 73 73 77 6f 72 64 20 3d 20 70      Password = p
0830: 61 73 73 77 6f 72 64 2e 54 65 78 74 3b 0a 20 20  assword.Text;.  
0840: 20 20 20 20 44 69 61 6c 6f 67 52 65 73 75 6c 74      DialogResult
0850: 20 3d 20 44 69 61 6c 6f 67 52 65 73 75 6c 74 2e   = DialogResult.
0860: 4f 4b 3b 0a 20 20 20 20 20 20 43 6c 6f 73 65 28  OK;.      Close(
0870: 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d        );.    }.  }.}