System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 9c1e25ccf7f3ad1d75152123f2a71d2b1b4f21c7:


0000: ef bb bf 2f 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 2a 2a 2a 0a 20 2a 20  ************. * 
0040: 41 44 4f 2e 4e 45 54 20 32 2e 30 20 44 61 74 61  ADO.NET 2.0 Data
0050: 20 50 72 6f 76 69 64 65 72 20 66 6f 72 20 53 51   Provider for SQ
0060: 4c 69 74 65 20 56 65 72 73 69 6f 6e 20 33 2e 58  Lite Version 3.X
0070: 0a 20 2a 20 57 72 69 74 74 65 6e 20 62 79 20 52  . * Written by R
0080: 6f 62 65 72 74 20 53 69 6d 70 73 6f 6e 20 28 72  obert Simpson (r
0090: 6f 62 65 72 74 40 62 6c 61 63 6b 63 61 73 74 6c  obert@blackcastl
00a0: 65 73 6f 66 74 2e 63 6f 6d 29 0a 20 2a 20 0a 20  esoft.com). * . 
00b0: 2a 20 52 65 6c 65 61 73 65 64 20 74 6f 20 74 68  * Released to th
00c0: 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c  e public domain,
00d0: 20 75 73 65 20 61 74 20 79 6f 75 72 20 6f 77 6e   use at your own
00e0: 20 72 69 73 6b 21 0a 20 2a 2a 2a 2a 2a 2a 2a 2a   risk!. ********
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 2a 2a 2a  ****************
0120: 2f 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 73  /..namespace Sys
0130: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 0a  tem.Data.SQLite.
0140: 7b 0a 20 20 75 73 69 6e 67 20 53 79 73 74 65 6d  {.  using System
0150: 3b 0a 20 20 75 73 69 6e 67 20 53 79 73 74 65 6d  ;.  using System
0160: 2e 44 61 74 61 2e 43 6f 6d 6d 6f 6e 3b 0a 0a 23  .Data.Common;..#
0170: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
0180: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0a 20 20  PACTFRAMEWORK.  
0190: 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0a 20 20  /// <summary>.  
01a0: 2f 2f 2f 20 53 51 4c 69 74 65 20 69 6d 70 6c 65  /// SQLite imple
01b0: 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 44 62 43  mentation of DbC
01c0: 6f 6e 6e 65 63 74 69 6f 6e 53 74 72 69 6e 67 42  onnectionStringB
01d0: 75 69 6c 64 65 72 2e 0a 20 20 2f 2f 2f 20 3c 2f  uilder..  /// </
01e0: 73 75 6d 6d 61 72 79 3e 0a 20 20 70 75 62 6c 69  summary>.  publi
01f0: 63 20 73 65 61 6c 65 64 20 63 6c 61 73 73 20 53  c sealed class S
0200: 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 53  QLiteConnectionS
0210: 74 72 69 6e 67 42 75 69 6c 64 65 72 20 3a 20 44  tringBuilder : D
0220: 62 43 6f 6e 6e 65 63 74 69 6f 6e 53 74 72 69 6e  bConnectionStrin
0230: 67 42 75 69 6c 64 65 72 0a 20 20 7b 0a 20 20 20  gBuilder.  {.   
0240: 20 2f 2f 2f 20 3c 6f 76 65 72 6c 6f 61 64 73 3e   /// <overloads>
0250: 0a 20 20 20 20 2f 2f 2f 20 43 6f 6e 73 74 72 75  .    /// Constru
0260: 63 74 73 20 61 20 6e 65 77 20 69 6e 73 74 61 6e  cts a new instan
0270: 63 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a  ce of the class.
0280: 20 20 20 20 2f 2f 2f 20 3c 2f 6f 76 65 72 6c 6f      /// </overlo
0290: 61 64 73 3e 0a 20 20 20 20 2f 2f 2f 20 3c 73 75  ads>.    /// <su
02a0: 6d 6d 61 72 79 3e 0a 20 20 20 20 2f 2f 2f 20 44  mmary>.    /// D
02b0: 65 66 61 75 6c 74 20 63 6f 6e 73 74 72 75 63 74  efault construct
02c0: 6f 72 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d  or.    /// </sum
02d0: 6d 61 72 79 3e 0a 20 20 20 20 70 75 62 6c 69 63  mary>.    public
02e0: 20 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f   SQLiteConnectio
02f0: 6e 53 74 72 69 6e 67 42 75 69 6c 64 65 72 28 29  nStringBuilder()
0300: 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 49 6e 69  .    {.      Ini
0310: 74 69 61 6c 69 7a 65 28 6e 75 6c 6c 29 3b 0a 20  tialize(null);. 
0320: 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 2f 20 3c 73     }..    /// <s
0330: 75 6d 6d 61 72 79 3e 0a 20 20 20 20 2f 2f 2f 20  ummary>.    /// 
0340: 43 6f 6e 73 74 72 75 63 74 73 20 61 20 6e 65 77  Constructs a new
0350: 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 65   instance of the
0360: 20 63 6c 61 73 73 20 75 73 69 6e 67 20 74 68 65   class using the
0370: 20 73 70 65 63 69 66 69 65 64 20 63 6f 6e 6e 65   specified conne
0380: 63 74 69 6f 6e 20 73 74 72 69 6e 67 2e 0a 20 20  ction string..  
0390: 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e    /// </summary>
03a0: 0a 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20  .    /// <param 
03b0: 6e 61 6d 65 3d 22 63 6e 6e 53 74 72 69 6e 67 22  name="cnnString"
03c0: 3e 54 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  >The connection 
03d0: 73 74 72 69 6e 67 20 74 6f 20 70 61 72 73 65 3c  string to parse<
03e0: 2f 70 61 72 61 6d 3e 0a 20 20 20 20 70 75 62 6c  /param>.    publ
03f0: 69 63 20 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74  ic SQLiteConnect
0400: 69 6f 6e 53 74 72 69 6e 67 42 75 69 6c 64 65 72  ionStringBuilder
0410: 28 73 74 72 69 6e 67 20 63 6e 6e 53 74 72 69 6e  (string cnnStrin
0420: 67 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 49  g).    {.      I
0430: 6e 69 74 69 61 6c 69 7a 65 28 63 6e 6e 53 74 72  nitialize(cnnStr
0440: 69 6e 67 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20  ing);.    }..   
0450: 20 70 72 69 76 61 74 65 20 76 6f 69 64 20 49 6e   private void In
0460: 69 74 69 61 6c 69 7a 65 28 73 74 72 69 6e 67 20  itialize(string 
0470: 63 6e 6e 53 74 72 69 6e 67 29 0a 20 20 20 20 7b  cnnString).    {
0480: 0a 20 20 20 20 20 20 43 6f 6e 6e 65 63 74 69 6f  .      Connectio
0490: 6e 53 74 72 69 6e 67 20 3d 20 63 6e 6e 53 74 72  nString = cnnStr
04a0: 69 6e 67 3b 0a 20 20 20 20 20 20 52 65 73 65 74  ing;.      Reset
04b0: 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69  ();.    }..    i
04c0: 6e 74 65 72 6e 61 6c 20 76 6f 69 64 20 52 65 73  nternal void Res
04d0: 65 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20  et().    {.     
04e0: 20 69 66 20 28 74 68 69 73 2e 43 6f 6e 74 61 69   if (this.Contai
04f0: 6e 73 4b 65 79 28 22 56 65 72 73 69 6f 6e 22 29  nsKey("Version")
0500: 20 3d 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 20   == false).     
0510: 20 20 20 56 65 72 73 69 6f 6e 20 3d 20 33 3b 0a     Version = 3;.
0520: 0a 20 20 20 20 20 20 69 66 20 28 43 6f 6e 74 61  .      if (Conta
0530: 69 6e 73 4b 65 79 28 22 55 73 65 55 54 46 31 36  insKey("UseUTF16
0540: 45 6e 63 6f 64 69 6e 67 22 29 20 3d 3d 20 66 61  Encoding") == fa
0550: 6c 73 65 29 0a 20 20 20 20 20 20 20 20 55 73 65  lse).        Use
0560: 55 54 46 31 36 45 6e 63 6f 64 69 6e 67 20 3d 20  UTF16Encoding = 
0570: 66 61 6c 73 65 3b 0a 0a 20 20 20 20 20 20 69 66  false;..      if
0580: 20 28 43 6f 6e 74 61 69 6e 73 4b 65 79 28 22 43   (ContainsKey("C
0590: 61 63 68 65 20 53 69 7a 65 22 29 20 3d 3d 20 66  ache Size") == f
05a0: 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 43 61  alse).        Ca
05b0: 63 68 65 53 69 7a 65 20 3d 20 32 30 30 30 3b 0a  cheSize = 2000;.
05c0: 0a 20 20 20 20 20 20 69 66 20 28 43 6f 6e 74 61  .      if (Conta
05d0: 69 6e 73 4b 65 79 28 22 53 79 6e 63 68 72 6f 6e  insKey("Synchron
05e0: 6f 75 73 22 29 20 3d 3d 20 66 61 6c 73 65 29 0a  ous") == false).
05f0: 20 20 20 20 20 20 20 20 53 79 6e 63 4d 6f 64 65          SyncMode
0600: 20 3d 20 53 79 6e 63 4d 6f 64 65 2e 4e 6f 72 6d   = SyncMode.Norm
0610: 61 6c 3b 0a 0a 20 20 20 20 20 20 69 66 20 28 43  al;..      if (C
0620: 6f 6e 74 61 69 6e 73 4b 65 79 28 22 44 61 74 65  ontainsKey("Date
0630: 54 69 6d 65 46 6f 72 6d 61 74 22 29 20 3d 3d 20  TimeFormat") == 
0640: 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 44  false).        D
0650: 61 74 65 54 69 6d 65 46 6f 72 6d 61 74 20 3d 20  ateTimeFormat = 
0660: 44 61 74 65 54 69 6d 65 46 6f 72 6d 61 74 2e 49  DateTimeFormat.I
0670: 53 4f 38 36 30 31 3b 0a 0a 20 20 20 20 20 20 69  SO8601;..      i
0680: 66 20 28 43 6f 6e 74 61 69 6e 73 4b 65 79 28 22  f (ContainsKey("
0690: 50 61 67 65 20 53 69 7a 65 22 29 20 3d 3d 20 66  Page Size") == f
06a0: 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 50 61  alse).        Pa
06b0: 67 65 53 69 7a 65 20 3d 20 34 30 39 36 3b 0a 20  geSize = 4096;. 
06c0: 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 2f 20 3c 73     }..    /// <s
06d0: 75 6d 6d 61 72 79 3e 0a 20 20 20 20 2f 2f 2f 20  ummary>.    /// 
06e0: 47 65 74 73 2f 53 65 74 73 20 74 68 65 20 64 65  Gets/Sets the de
06f0: 66 61 75 6c 74 20 76 65 72 73 69 6f 6e 20 6f 66  fault version of
0700: 20 74 68 65 20 53 51 4c 69 74 65 20 65 6e 67 69   the SQLite engi
0710: 6e 65 20 74 6f 20 69 6e 73 74 61 6e 74 69 61 74  ne to instantiat
0720: 65 2e 20 20 43 75 72 72 65 6e 74 6c 79 20 74 68  e.  Currently th
0730: 65 20 6f 6e 6c 79 20 76 61 6c 69 64 20 76 61 6c  e only valid val
0740: 75 65 20 69 73 20 33 2c 20 69 6e 64 69 63 61 74  ue is 3, indicat
0750: 69 6e 67 20 76 65 72 73 69 6f 6e 20 33 20 6f 66  ing version 3 of
0760: 20 74 68 65 20 73 71 6c 69 74 65 20 6c 69 62 72   the sqlite libr
0770: 61 72 79 2e 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73  ary..    /// </s
0780: 75 6d 6d 61 72 79 3e 0a 20 20 20 20 70 75 62 6c  ummary>.    publ
0790: 69 63 20 69 6e 74 20 56 65 72 73 69 6f 6e 0a 20  ic int Version. 
07a0: 20 20 20 7b 0a 20 20 20 20 20 20 67 65 74 0a 20     {.      get. 
07b0: 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72       {.        r
07c0: 65 74 75 72 6e 20 43 6f 6e 76 65 72 74 2e 54 6f  eturn Convert.To
07d0: 49 6e 74 33 32 28 74 68 69 73 5b 22 56 65 72 73  Int32(this["Vers
07e0: 69 6f 6e 22 5d 29 3b 0a 20 20 20 20 20 20 7d 0a  ion"]);.      }.
07f0: 20 20 20 20 20 20 73 65 74 0a 20 20 20 20 20 20        set.      
0800: 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 76 61  {.        if (va
0810: 6c 75 65 20 21 3d 20 33 29 0a 20 20 20 20 20 20  lue != 3).      
0820: 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4e 6f      throw new No
0830: 74 49 6d 70 6c 65 6d 65 6e 74 65 64 45 78 63 65  tImplementedExce
0840: 70 74 69 6f 6e 28 29 3b 0a 0a 20 20 20 20 20 20  ption();..      
0850: 20 20 74 68 69 73 5b 22 56 65 72 73 69 6f 6e 22    this["Version"
0860: 5d 20 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 20  ] = value;.     
0870: 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f   }.    }..    //
0880: 2f 20 3c 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20  / <summary>.    
0890: 2f 2f 2f 20 47 65 74 73 2f 53 65 74 73 20 74 68  /// Gets/Sets th
08a0: 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 6d 6f  e synchronous mo
08b0: 64 65 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63  de of the connec
08c0: 74 69 6f 6e 20 73 74 72 69 6e 67 2e 20 20 44 65  tion string.  De
08d0: 66 61 75 6c 74 20 69 73 20 22 4e 6f 72 6d 61 6c  fault is "Normal
08e0: 22 2e 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d  "..    /// </sum
08f0: 6d 61 72 79 3e 0a 20 20 20 20 70 75 62 6c 69 63  mary>.    public
0900: 20 53 79 6e 63 4d 6f 64 65 20 53 79 6e 63 4d 6f   SyncMode SyncMo
0910: 64 65 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 67  de.    {.      g
0920: 65 74 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20  et.      {.     
0930: 20 20 20 73 74 72 69 6e 67 20 73 20 3d 20 74 68     string s = th
0940: 69 73 5b 22 53 79 6e 63 68 72 6f 6e 6f 75 73 22  is["Synchronous"
0950: 5d 2e 54 6f 53 74 72 69 6e 67 28 29 2e 54 6f 55  ].ToString().ToU
0960: 70 70 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20  pper();.        
0970: 73 77 69 74 63 68 20 28 73 29 0a 20 20 20 20 20  switch (s).     
0980: 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63     {.          c
0990: 61 73 65 20 22 46 55 4c 4c 22 3a 0a 20 20 20 20  ase "FULL":.    
09a0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 53          return S
09b0: 79 6e 63 4d 6f 64 65 2e 46 75 6c 6c 3b 0a 20 20  yncMode.Full;.  
09c0: 20 20 20 20 20 20 20 20 63 61 73 65 20 22 4f 46          case "OF
09d0: 46 22 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20  F":.            
09e0: 72 65 74 75 72 6e 20 53 79 6e 63 4d 6f 64 65 2e  return SyncMode.
09f0: 4f 66 66 3b 0a 20 20 20 20 20 20 20 20 20 20 64  Off;.          d
0a00: 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20  efault:.        
0a10: 20 20 20 20 72 65 74 75 72 6e 20 53 79 6e 63 4d      return SyncM
0a20: 6f 64 65 2e 4e 6f 72 6d 61 6c 3b 0a 20 20 20 20  ode.Normal;.    
0a30: 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20      }.      }.  
0a40: 20 20 20 20 73 65 74 0a 20 20 20 20 20 20 7b 0a      set.      {.
0a50: 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 73          string s
0a60: 20 3d 20 22 4e 6f 72 6d 61 6c 22 3b 0a 20 20 20   = "Normal";.   
0a70: 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 20 3d       if (value =
0a80: 3d 20 53 79 6e 63 4d 6f 64 65 2e 46 75 6c 6c 29  = SyncMode.Full)
0a90: 20 73 20 3d 20 22 46 75 6c 6c 22 3b 0a 20 20 20   s = "Full";.   
0aa0: 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 76 61       else if (va
0ab0: 6c 75 65 20 3d 3d 20 53 79 6e 63 4d 6f 64 65 2e  lue == SyncMode.
0ac0: 4f 66 66 29 20 73 20 3d 20 22 4f 66 66 22 3b 0a  Off) s = "Off";.
0ad0: 0a 20 20 20 20 20 20 20 20 74 68 69 73 5b 22 53  .        this["S
0ae0: 79 6e 63 68 72 6f 6e 6f 75 73 22 5d 20 3d 20 73  ynchronous"] = s
0af0: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a  ;.      }.    }.
0b00: 0a 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72  .    /// <summar
0b10: 79 3e 0a 20 20 20 20 2f 2f 2f 20 47 65 74 73 2f  y>.    /// Gets/
0b20: 53 65 74 73 20 74 68 65 20 65 6e 63 6f 64 69 6e  Sets the encodin
0b30: 67 20 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63  g for the connec
0b40: 74 69 6f 6e 20 73 74 72 69 6e 67 2e 20 20 54 68  tion string.  Th
0b50: 65 20 64 65 66 61 75 6c 74 20 69 73 20 22 46 61  e default is "Fa
0b60: 6c 73 65 22 20 77 68 69 63 68 20 69 6e 64 69 63  lse" which indic
0b70: 61 74 65 73 20 55 54 46 2d 38 20 65 6e 63 6f 64  ates UTF-8 encod
0b80: 69 6e 67 2e 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73  ing..    /// </s
0b90: 75 6d 6d 61 72 79 3e 0a 20 20 20 20 70 75 62 6c  ummary>.    publ
0ba0: 69 63 20 62 6f 6f 6c 20 55 73 65 55 54 46 31 36  ic bool UseUTF16
0bb0: 45 6e 63 6f 64 69 6e 67 0a 20 20 20 20 7b 0a 20  Encoding.    {. 
0bc0: 20 20 20 20 20 67 65 74 0a 20 20 20 20 20 20 7b       get.      {
0bd0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
0be0: 28 74 68 69 73 5b 22 55 73 65 55 54 46 31 36 45  (this["UseUTF16E
0bf0: 6e 63 6f 64 69 6e 67 22 5d 2e 54 6f 53 74 72 69  ncoding"].ToStri
0c00: 6e 67 28 29 2e 54 6f 55 70 70 65 72 28 29 20 3d  ng().ToUpper() =
0c10: 3d 20 22 54 52 55 45 22 29 3b 0a 20 20 20 20 20  = "TRUE");.     
0c20: 20 7d 0a 20 20 20 20 20 20 73 65 74 0a 20 20 20   }.      set.   
0c30: 20 20 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69     {.        thi
0c40: 73 5b 22 55 73 65 55 54 46 31 36 45 6e 63 6f 64  s["UseUTF16Encod
0c50: 69 6e 67 22 5d 20 3d 20 28 28 76 61 6c 75 65 20  ing"] = ((value 
0c60: 3d 3d 20 74 72 75 65 29 20 3f 20 22 54 72 75 65  == true) ? "True
0c70: 22 20 3a 20 22 46 61 6c 73 65 22 29 3b 0a 20 20  " : "False");.  
0c80: 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20      }.    }..   
0c90: 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0a 20   /// <summary>. 
0ca0: 20 20 20 2f 2f 2f 20 47 65 74 73 2f 53 65 74 73     /// Gets/Sets
0cb0: 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 74 6f   the filename to
0cc0: 20 6f 70 65 6e 20 6f 6e 20 74 68 65 20 63 6f 6e   open on the con
0cd0: 6e 65 63 74 69 6f 6e 20 73 74 72 69 6e 67 2e 0a  nection string..
0ce0: 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72      /// </summar
0cf0: 79 3e 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74  y>.    public st
0d00: 72 69 6e 67 20 44 61 74 61 53 6f 75 72 63 65 0a  ring DataSource.
0d10: 20 20 20 20 7b 0a 20 20 20 20 20 20 67 65 74 0a      {.      get.
0d20: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
0d30: 72 65 74 75 72 6e 20 74 68 69 73 5b 22 44 61 74  return this["Dat
0d40: 61 20 53 6f 75 72 63 65 22 5d 2e 54 6f 53 74 72  a Source"].ToStr
0d50: 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20  ing();.      }. 
0d60: 20 20 20 20 20 73 65 74 0a 20 20 20 20 20 20 7b       set.      {
0d70: 0a 20 20 20 20 20 20 20 20 74 68 69 73 5b 22 44  .        this["D
0d80: 61 74 61 20 53 6f 75 72 63 65 22 5d 20 3d 20 76  ata Source"] = v
0d90: 61 6c 75 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20  alue;.      }.  
0da0: 20 20 7d 0a 0a 20 20 20 20 2f 2f 2f 20 3c 73 75    }..    /// <su
0db0: 6d 6d 61 72 79 3e 0a 20 20 20 20 2f 2f 2f 20 47  mmary>.    /// G
0dc0: 65 74 73 2f 53 65 74 73 20 74 68 65 20 70 61 67  ets/Sets the pag
0dd0: 65 20 73 69 7a 65 20 66 6f 72 20 74 68 65 20 63  e size for the c
0de0: 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 20 20 20 20 2f  onnection..    /
0df0: 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 20 20  // </summary>.  
0e00: 20 20 70 75 62 6c 69 63 20 69 6e 74 20 50 61 67    public int Pag
0e10: 65 53 69 7a 65 0a 20 20 20 20 7b 0a 20 20 20 20  eSize.    {.    
0e20: 20 20 67 65 74 0a 20 20 20 20 20 20 7b 0a 20 20    get.      {.  
0e30: 20 20 20 20 20 20 72 65 74 75 72 6e 20 43 6f 6e        return Con
0e40: 76 65 72 74 2e 54 6f 49 6e 74 33 32 28 74 68 69  vert.ToInt32(thi
0e50: 73 5b 22 50 61 67 65 20 53 69 7a 65 22 5d 29 3b  s["Page Size"]);
0e60: 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 73  .      }.      s
0e70: 65 74 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20  et.      {.     
0e80: 20 20 20 74 68 69 73 5b 22 50 61 67 65 20 53 69     this["Page Si
0e90: 7a 65 22 5d 20 3d 20 76 61 6c 75 65 3b 0a 20 20  ze"] = value;.  
0ea0: 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20      }.    }..   
0eb0: 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0a 20   /// <summary>. 
0ec0: 20 20 20 2f 2f 2f 20 47 65 74 73 2f 53 65 74 73     /// Gets/Sets
0ed0: 20 74 68 65 20 63 61 63 68 65 20 73 69 7a 65 20   the cache size 
0ee0: 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69  for the connecti
0ef0: 6f 6e 2e 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73 75  on..    /// </su
0f00: 6d 6d 61 72 79 3e 0a 20 20 20 20 70 75 62 6c 69  mmary>.    publi
0f10: 63 20 69 6e 74 20 43 61 63 68 65 53 69 7a 65 0a  c int CacheSize.
0f20: 20 20 20 20 7b 0a 20 20 20 20 20 20 67 65 74 0a      {.      get.
0f30: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
0f40: 72 65 74 75 72 6e 20 43 6f 6e 76 65 72 74 2e 54  return Convert.T
0f50: 6f 49 6e 74 33 32 28 74 68 69 73 5b 22 43 61 63  oInt32(this["Cac
0f60: 68 65 20 53 69 7a 65 22 5d 29 3b 0a 20 20 20 20  he Size"]);.    
0f70: 20 20 7d 0a 20 20 20 20 20 20 73 65 74 0a 20 20    }.      set.  
0f80: 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 74 68      {.        th
0f90: 69 73 5b 22 43 61 63 68 65 20 53 69 7a 65 22 5d  is["Cache Size"]
0fa0: 20 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 20 20   = value;.      
0fb0: 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 2f  }.    }..    ///
0fc0: 20 3c 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20 2f   <summary>.    /
0fd0: 2f 2f 20 47 65 74 73 2f 53 65 74 73 20 74 68 65  // Gets/Sets the
0fe0: 20 64 61 74 65 74 69 6d 65 20 66 6f 72 6d 61 74   datetime format
0ff0: 20 66 6f 72 20 74 68 65 20 63 6f 6e 6e 65 63 74   for the connect
1000: 69 6f 6e 2e 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73  ion..    /// </s
1010: 75 6d 6d 61 72 79 3e 0a 20 20 20 20 70 75 62 6c  ummary>.    publ
1020: 69 63 20 44 61 74 65 54 69 6d 65 46 6f 72 6d 61  ic DateTimeForma
1030: 74 20 44 61 74 65 54 69 6d 65 46 6f 72 6d 61 74  t DateTimeFormat
1040: 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 67 65 74  .    {.      get
1050: 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20  .      {.       
1060: 20 73 77 69 74 63 68 28 74 68 69 73 5b 22 44 61   switch(this["Da
1070: 74 65 54 69 6d 65 46 6f 72 6d 61 74 22 5d 2e 54  teTimeFormat"].T
1080: 6f 53 74 72 69 6e 67 28 29 2e 54 6f 55 70 70 65  oString().ToUppe
1090: 72 28 29 29 0a 20 20 20 20 20 20 20 20 7b 0a 20  r()).        {. 
10a0: 20 20 20 20 20 20 20 20 20 63 61 73 65 20 22 54           case "T
10b0: 49 43 4b 53 22 3a 0a 20 20 20 20 20 20 20 20 20  ICKS":.         
10c0: 20 20 20 72 65 74 75 72 6e 20 44 61 74 65 54 69     return DateTi
10d0: 6d 65 46 6f 72 6d 61 74 2e 54 69 63 6b 73 3b 0a  meFormat.Ticks;.
10e0: 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c            defaul
10f0: 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72  t:.            r
1100: 65 74 75 72 6e 20 44 61 74 65 54 69 6d 65 46 6f  eturn DateTimeFo
1110: 72 6d 61 74 2e 49 53 4f 38 36 30 31 3b 0a 20 20  rmat.ISO8601;.  
1120: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a        }.      }.
1130: 20 20 20 20 20 20 73 65 74 0a 20 20 20 20 20 20        set.      
1140: 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68  {.        switch
1150: 20 28 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20   (value).       
1160: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 61 73   {.          cas
1170: 65 20 44 61 74 65 54 69 6d 65 46 6f 72 6d 61 74  e DateTimeFormat
1180: 2e 54 69 63 6b 73 3a 0a 20 20 20 20 20 20 20 20  .Ticks:.        
1190: 20 20 20 20 74 68 69 73 5b 22 44 61 74 65 54 69      this["DateTi
11a0: 6d 65 46 6f 72 6d 61 74 22 5d 20 3d 20 22 54 69  meFormat"] = "Ti
11b0: 63 6b 73 22 3b 0a 20 20 20 20 20 20 20 20 20 20  cks";.          
11c0: 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20    break;.       
11d0: 20 20 20 63 61 73 65 20 44 61 74 65 54 69 6d 65     case DateTime
11e0: 46 6f 72 6d 61 74 2e 49 53 4f 38 36 30 31 3a 0a  Format.ISO8601:.
11f0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
1200: 5b 22 44 61 74 65 54 69 6d 65 46 6f 72 6d 61 74  ["DateTimeFormat
1210: 22 5d 20 3d 20 22 49 53 4f 38 36 30 31 22 3b 0a  "] = "ISO8601";.
1220: 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61              brea
1230: 6b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20  k;.        }.   
1240: 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 23     }.    }.  }.#
1250: 65 6e 64 69 66 0a 7d 0a                          endif.}.