亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sqliteconvert.cs

?? sqlite 3.3.8 支持加密的版本
?? CS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
?/********************************************************
 * ADO.NET 2.0 Data Provider for SQLite Version 3.X
 * Written by Robert Simpson (robert@blackcastlesoft.com)
 * 
 * Released to the public domain, use at your own risk!
 ********************************************************/

namespace System.Data.SQLite
{
  using System;
  using System.Runtime.InteropServices;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Globalization;
  using System.Text;

#if !PLATFORM_COMPACTFRAMEWORK 
  using System.ComponentModel.Design;
#endif

  /// <summary>
  /// SQLite has very limited types, and is inherently text-based.  The first 5 types below represent the sum of all types SQLite
  /// understands.  The DateTime extension to the spec is for internal use only.
  /// </summary>
  public enum TypeAffinity
  {
    /// <summary>
    /// Not used
    /// </summary>
    Uninitialized = 0,
    /// <summary>
    /// All integers in SQLite default to Int64
    /// </summary>
    Int64 = 1,
    /// <summary>
    /// All floating point numbers in SQLite default to double
    /// </summary>
    Double = 2,
    /// <summary>
    /// The default data type of SQLite is text
    /// </summary>
    Text = 3,
    /// <summary>
    /// Typically blob types are only seen when returned from a function
    /// </summary>
    Blob = 4,
    /// <summary>
    /// Null types can be returned from functions
    /// </summary>
    Null = 5,
    /// <summary>
    /// Used internally by this provider
    /// </summary>
    DateTime = 10,
    /// <summary>
    /// Used internally
    /// </summary>
    None = 11,
  }

  /// <summary>
  /// This implementation of SQLite for ADO.NET can process date/time fields in databases in only one of two formats.  Ticks and ISO8601.
  /// Ticks is inherently more accurate, but less compatible with 3rd party tools that query the database, and renders the DateTime field
  /// unreadable without post-processing.
  /// ISO8601 is more compatible, readable, fully-processable, but less accurate as it doesn't provide time down to fractions of a second.
  /// </summary>
  public enum SQLiteDateFormats
  {
    /// <summary>
    /// Using ticks is more accurate but less compatible with other viewers and utilities that access your database.
    /// </summary>
    Ticks = 0,
    /// <summary>
    /// The default format for this provider.
    /// </summary>
    ISO8601 = 1,
  }

  /// <summary>
  /// Struct used internally to determine the datatype of a column in a resultset
  /// </summary>
  internal struct SQLiteType
  {
    /// <summary>
    /// The DbType of the column, or DbType.Object if it cannot be determined
    /// </summary>
    internal DbType Type;
    /// <summary>
    /// The affinity of a column, used for expressions or when Type is DbType.Object
    /// </summary>
    internal TypeAffinity Affinity;
  }

  internal struct SQLiteTypeNames
  {
    internal SQLiteTypeNames(string newtypeName, DbType newdataType)
    {
      typeName = newtypeName;
      dataType = newdataType;
    }

    internal string typeName;
    internal DbType dataType;
  }

  /// <summary>
  /// This base class provides datatype conversion services for the SQLite provider.
  /// </summary>
  public abstract class SQLiteConvert
  {
    /// <summary>
    /// An array of ISO8601 datetime formats we support conversion from
    /// </summary>
    private static string[] _datetimeFormats = new string[] {
      "yyyy-MM-dd HH:mm:ss.fffffff",
      "yyyy-MM-dd HH:mm:ss",
      "yyyy-MM-dd HH:mm",                               
      "yyyyMMddHHmmss",
      "yyyyMMddHHmm",
      "yyyyMMddTHHmmssfffffff",
      "yyyy-MM-dd",
      "yy-MM-dd",
      "yyyyMMdd",
      "HH:mm:ss",
      "HH:mm",
      "THHmmss",
      "THHmm",
      "yyyy-MM-dd HH:mm:ss.fff",
      "yyyy-MM-ddTHH:mm",
      "yyyy-MM-ddTHH:mm:ss",
      "yyyy-MM-ddTHH:mm:ss.fff",
      "yyyy-MM-ddTHH:mm:ss.ffffff",
      "HH:mm:ss.fff"
    };

    /// <summary>
    /// An UTF-8 Encoding instance, so we can convert strings to and from UTF-8
    /// </summary>
    private Encoding _utf8 = new UTF8Encoding();
    /// <summary>
    /// The default DateTime format for this instance
    /// </summary>
    internal SQLiteDateFormats _datetimeFormat;
    /// <summary>
    /// Initializes the conversion class
    /// </summary>
    /// <param name="fmt">The default date/time format to use for this instance</param>
    internal SQLiteConvert(SQLiteDateFormats fmt)
    {
      _datetimeFormat = fmt;
    }

    #region UTF-8 Conversion Functions
    /// <summary>
    /// Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character.
    /// </summary>
    /// <param name="sourceText">The string to convert to UTF-8</param>
    /// <returns>A byte array containing the converted string plus an extra 0 terminating byte at the end of the array.</returns>
    public byte[] ToUTF8(string sourceText)
    {
      Byte[] byteArray;
      int nlen = _utf8.GetByteCount(sourceText) + 1;

      byteArray = new byte[nlen];
      nlen = _utf8.GetBytes(sourceText, 0, sourceText.Length, byteArray, 0);
      byteArray[nlen] = 0;

      return byteArray;
    }

    /// <summary>
    /// Convert a DateTime to a UTF-8 encoded, zero-terminated byte array.
    /// </summary>
    /// <remarks>
    /// This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the
    /// string result.
    /// </remarks>
    /// <param name="dateTimeValue">The DateTime to convert.</param>
    /// <returns>The UTF-8 encoded string, including a 0 terminating byte at the end of the array.</returns>
    public byte[] ToUTF8(DateTime dateTimeValue)
    {
      return ToUTF8(ToString(dateTimeValue));
    }

    /// <summary>
    /// Converts a UTF-8 encoded IntPtr of the specified length into a .NET string
    /// </summary>
    /// <param name="nativestring">The pointer to the memory where the UTF-8 string is encoded</param>
    /// <param name="nativestringlen">The number of bytes to decode</param>
    /// <returns>A string containing the translated character(s)</returns>
    public virtual string ToString(IntPtr nativestring, int nativestringlen)
    {
      return UTF8ToString(nativestring, nativestringlen);
    }

    /// <summary>
    /// Converts a UTF-8 encoded IntPtr of the specified length into a .NET string
    /// </summary>
    /// <param name="nativestring">The pointer to the memory where the UTF-8 string is encoded</param>
    /// <param name="nativestringlen">The number of bytes to decode</param>
    /// <returns>A string containing the translated character(s)</returns>
    public virtual string UTF8ToString(IntPtr nativestring, int nativestringlen)
    {
      if (nativestringlen == 0) return "";

      byte[] byteArray = new byte[nativestringlen];

      Marshal.Copy(nativestring, byteArray, 0, nativestringlen);

      return _utf8.GetString(byteArray, 0, nativestringlen);
    }


    #endregion

    #region DateTime Conversion Functions
    /// <summary>
    /// Converts a string into a DateTime, using the current DateTimeFormat specified for the connection when it was opened.
    /// </summary>
    /// <remarks>
    /// Acceptable ISO8601 DateTime formats are:
    ///   yyyy-MM-dd HH:mm:ss
    ///   yyyyMMddHHmmss
    ///   yyyyMMddTHHmmssfffffff
    ///   yyyy-MM-dd
    ///   yy-MM-dd
    ///   yyyyMMdd
    ///   HH:mm:ss
    ///   THHmmss
    /// </remarks>
    /// <param name="dateText">The string containing either a Tick value or an ISO8601-format string</param>
    /// <returns>A DateTime value</returns>
    public DateTime ToDateTime(string dateText)
    {
      switch (_datetimeFormat)
      {
        case SQLiteDateFormats.Ticks:
          return new DateTime(Convert.ToInt64(dateText, CultureInfo.InvariantCulture));
        default:
          return DateTime.ParseExact(dateText, _datetimeFormats, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None);
      }
    }

    /// <summary>
    /// Converts a DateTime to a string value, using the current DateTimeFormat specified for the connection when it was opened.
    /// </summary>
    /// <param name="dateValue">The DateTime value to convert</param>
    /// <returns>Either a string consisting of the tick count for DateTimeFormat.Ticks, or a date/time in ISO8601 format.</returns>
    public string ToString(DateTime dateValue)
    {
      switch (_datetimeFormat)
      {
        case SQLiteDateFormats.Ticks:
          return dateValue.Ticks.ToString(CultureInfo.InvariantCulture);
        default:
          return dateValue.ToString(_datetimeFormats[0], CultureInfo.InvariantCulture);
      }
    }

    /// <summary>
    /// Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime.
    /// </summary>
    /// <remarks>
    /// This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls
    /// ToDateTime() on the string to return a DateTime.
    /// </remarks>
    /// <param name="ptr">A pointer to the UTF-8 encoded string</param>
    /// <param name="len">The length in bytes of the string</param>
    /// <returns>The parsed DateTime value</returns>
    internal DateTime ToDateTime(IntPtr ptr, int len)
    {
      return ToDateTime(ToString(ptr, len));
    }
    #endregion

    /// <summary>
    /// Smart method of splitting a string.  Skips quoted elements, removes the quotes.
    /// </summary>
    /// <remarks>
    /// This split function works somewhat like the String.Split() function in that it breaks apart a string into
    /// pieces and returns the pieces as an array.  The primary differences are:
    /// <list type="bullet">
    /// <item><description>Only one character can be provided as a separator character</description></item>
    /// <item><description>Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed.</description></item>
    /// </list>
    /// Thus, if splitting the following string looking for a comma:<br/>
    /// One,Two, "Three, Four", Five<br/>
    /// <br/>
    /// The resulting array would contain<br/>
    /// [0] One<br/>
    /// [1] Two<br/>
    /// [2] Three, Four<br/>
    /// [3] Five<br/>
    /// <br/>
    /// Note that the leading and trailing spaces were removed from each item during the split.
    /// </remarks>
    /// <param name="source">Source string to split apart</param>
    /// <param name="separator">Separator character</param>
    /// <returns>A string array of the split up elements</returns>
    public static string[] Split(string source, char separator)
    {
      char[] toks = new char[2] { '\"', separator };
      char[] quot = new char[1] { '\"' };

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级视频一区| 国产成人av福利| 麻豆久久久久久久| 黑人巨大精品欧美黑白配亚洲| 国产精品一区二区在线观看不卡 | 亚洲精品一区二区三区蜜桃下载| 国产欧美一区二区三区鸳鸯浴| 亚洲欧美日韩国产另类专区| 日韩av电影天堂| 国产91丝袜在线播放0| 欧美最猛性xxxxx直播| 26uuu国产电影一区二区| 亚洲男人的天堂在线aⅴ视频| 日韩在线一二三区| 成人深夜视频在线观看| 欧美日韩免费一区二区三区视频| 久久精品亚洲乱码伦伦中文| 亚洲一区二区三区四区在线观看 | 久久一区二区视频| 亚洲一区二区三区中文字幕 | 久久久精品天堂| 一区二区三区欧美在线观看| 老司机午夜精品| 色999日韩国产欧美一区二区| www国产精品av| 亚洲一区二区三区中文字幕| 国产精品一区二区视频| 欧美日韩国产在线观看| 国产精品―色哟哟| 人人超碰91尤物精品国产| 97精品超碰一区二区三区| 欧美刺激午夜性久久久久久久| 国产精品成人免费在线| 国内精品嫩模私拍在线| 欧美日韩国产系列| 中文字幕一区二区三区av| 久久爱www久久做| 91麻豆精品国产91久久久久久久久 | 中文字幕+乱码+中文字幕一区| 三级欧美在线一区| 色狠狠色狠狠综合| 国产女同互慰高潮91漫画| 热久久久久久久| 欧美日韩亚洲高清一区二区| 亚洲欧美日韩小说| 波多野结衣在线一区| 精品国产免费一区二区三区四区| 亚洲妇女屁股眼交7| 91视视频在线观看入口直接观看www | 亚洲天堂免费看| 国产伦精品一区二区三区在线观看| 欧美日韩黄色一区二区| 一区二区三区日韩在线观看| 99re热这里只有精品视频| 久久这里只有精品6| 裸体在线国模精品偷拍| 91精品在线一区二区| 亚洲第一成人在线| 欧美色爱综合网| 亚洲一级二级三级在线免费观看| 色综合欧美在线| 亚洲欧洲三级电影| www.欧美日韩| 国产精品久久久久久久久免费桃花 | 欧美天天综合网| 亚洲在线视频网站| 欧美性生活大片视频| 亚洲一区在线观看免费| 91福利小视频| 亚洲综合免费观看高清完整版在线 | 国产偷v国产偷v亚洲高清| 国产一区免费电影| 久久久久国产精品麻豆ai换脸| 国产一区二区三区日韩| 久久久久久黄色| 成人听书哪个软件好| 国产精品视频一二| 99精品在线免费| 一区二区三区免费| 欧美视频一区二区三区| 香蕉乱码成人久久天堂爱免费| 欧美日韩日日摸| 麻豆国产精品官网| 久久只精品国产| 成人视屏免费看| 一区二区三区四区在线播放| 欧美亚洲禁片免费| 日韩av成人高清| 精品国产免费一区二区三区四区 | 国产精品不卡在线| 欧美最猛黑人xxxxx猛交| 亚洲成人av福利| 欧美一级理论性理论a| 国产原创一区二区| 中文字幕一区二区三区在线不卡| 色综合久久久久综合99| 亚洲成人av一区| 欧美精品一区二区三区蜜臀| 丁香婷婷综合色啪| 亚洲免费看黄网站| 制服丝袜一区二区三区| 精品一区二区三区免费播放| 国产午夜精品久久久久久久| 91视频观看视频| 爽爽淫人综合网网站| 精品伦理精品一区| 92国产精品观看| 午夜精品123| 久久久亚洲高清| 91视频精品在这里| 久久精品免费看| 亚洲国产精品成人综合| 欧美亚洲禁片免费| 国产麻豆视频一区| 亚洲一区二区三区视频在线| 精品国产电影一区二区| 一本到高清视频免费精品| 蜜臀av性久久久久蜜臀aⅴ| 国产午夜亚洲精品理论片色戒| 色偷偷88欧美精品久久久| 奇米精品一区二区三区四区| 国产精品成人免费| 日韩亚洲欧美高清| 色婷婷综合久久久中文一区二区| 日本特黄久久久高潮| 国产精品日日摸夜夜摸av| 欧美美女黄视频| 成人激情免费网站| 美日韩一区二区| 亚洲色图一区二区三区| 欧美不卡一区二区| 欧美在线视频全部完| 国产高清亚洲一区| 天天色天天操综合| 国产精品美女久久久久久久久久久| 在线免费精品视频| 懂色av一区二区三区免费观看| 同产精品九九九| 亚洲日韩欧美一区二区在线| 2022国产精品视频| 欧美四级电影在线观看| 成人精品国产福利| 日韩精品91亚洲二区在线观看| 国产精品伦一区二区三级视频| 日韩一区二区三区av| 在线亚洲欧美专区二区| 成人免费毛片嘿嘿连载视频| 看片网站欧美日韩| 午夜精品久久久久久久99樱桃| 1000部国产精品成人观看| 精品国产亚洲在线| 欧美一区二区在线视频| 欧美伊人久久大香线蕉综合69| 北岛玲一区二区三区四区| 国产在线国偷精品产拍免费yy| 日本欧洲一区二区| 性久久久久久久久久久久| 亚洲老司机在线| 中文字幕综合网| 国产精品免费丝袜| 国产欧美视频在线观看| 精品免费日韩av| 337p亚洲精品色噜噜狠狠| 欧美亚洲综合久久| 91精品福利在线| 91香蕉视频在线| 成人av动漫网站| 成人av网址在线| 成人综合在线观看| 国产精品自在欧美一区| 久久不见久久见免费视频1| 青草国产精品久久久久久| 日本强好片久久久久久aaa| 日韩二区三区四区| 日本三级韩国三级欧美三级| 丝袜诱惑亚洲看片| 午夜天堂影视香蕉久久| 亚洲成人免费视频| 午夜日韩在线电影| 婷婷综合五月天| 日本网站在线观看一区二区三区| 日本不卡在线视频| 奇米影视7777精品一区二区| 美腿丝袜在线亚洲一区 | 欧美激情中文字幕一区二区| 欧美激情综合五月色丁香小说| 国产精品视频九色porn| 国产精品不卡一区二区三区| 亚洲欧洲制服丝袜| 亚洲精品高清在线观看| 亚洲一二三四在线| 午夜精品成人在线| 久久激情五月激情| 国产一区二区三区不卡在线观看| 国产精品99久久久久久似苏梦涵| 成人性生交大片免费看视频在线| 99久久国产综合精品色伊| 欧美在线三级电影| 91精品国产综合久久久久久| 欧美成人一区二区三区片免费|