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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sqliteconnection.cs

?? sqlite 3.3.8 支持加密的版本
?? CS
?? 第 1 頁 / 共 5 頁
字號:
                  // The only way to figure it out is to check if the index was an autoindex and if we have a non-rowid
                  // primary key, and all the columns in the given index match the primary key columns
                  if (primaryKeys.Count > 0 && rd.GetString(1).StartsWith("sqlite_autoindex_" + rdTables.GetString(2), StringComparison.InvariantCultureIgnoreCase) == true)
                  {
                    using (SQLiteCommand cmdDetails = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "PRAGMA [{0}].index_info([{1}])", strCatalog, rd.GetString(1)), this))
                    using (SQLiteDataReader rdDetails = cmdDetails.ExecuteReader())
                    {
                      int nMatches = 0;
                      while (rdDetails.Read())
                      {
                        if (primaryKeys.Contains(rdDetails.GetInt32(1)) == false)
                        {
                          nMatches = 0;
                          break;
                        }
                        nMatches++;
                      }
                      if (nMatches == primaryKeys.Count)
                      {
                        row["PRIMARY_KEY"] = true;
                        primaryKeys.Clear();
                      }
                    }
                  }

                  tbl.Rows.Add(row);
                }
              }
            }
          }
        }
      }

      tbl.AcceptChanges();
      tbl.EndLoadData();

      return tbl;
    }

    /// <summary>
    /// Retrieves table schema information for the database and catalog
    /// </summary>
    /// <param name="strCatalog">The catalog (attached database) to retrieve tables on</param>
    /// <param name="strTable">The table to retrieve, can be null</param>
    /// <param name="strType">The table type, can be null</param>
    /// <returns>DataTable</returns>
    private DataTable Schema_Tables(string strCatalog, string strTable, string strType)
    {
      DataTable tbl = new DataTable("Tables");
      DataRow row;
      string strItem;

      tbl.Locale = CultureInfo.InvariantCulture;
      tbl.Columns.Add("TABLE_CATALOG", typeof(string));
      tbl.Columns.Add("TABLE_SCHEMA", typeof(string));
      tbl.Columns.Add("TABLE_NAME", typeof(string));
      tbl.Columns.Add("TABLE_TYPE", typeof(string));
      tbl.Columns.Add("TABLE_ID", typeof(long));
      tbl.Columns.Add("TABLE_ROOTPAGE", typeof(int));

      tbl.BeginLoadData();

      if (String.IsNullOrEmpty(strCatalog)) strCatalog = "main";

      using (SQLiteCommand cmd = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "SELECT [type], [name], [tbl_name], [rootpage], [sql], [rowid] FROM [{0}].[sqlite_master] WHERE [type] LIKE 'table'", strCatalog), this))
      using (SQLiteDataReader rd = (SQLiteDataReader)cmd.ExecuteReader())
      {
        while (rd.Read())
        {
          strItem = rd.GetString(0);
          if (String.Compare(rd.GetString(2), 0, "SQLITE_", 0, 7, true, CultureInfo.InvariantCulture) == 0)
            strItem = "SYSTEM_TABLE";

          if (String.Compare(strType, strItem, true, CultureInfo.InvariantCulture) == 0
            || strType == null)
          {
            if (String.Compare(rd.GetString(2), strTable, true, CultureInfo.InvariantCulture) == 0
              || strTable == null)
            {
              row = tbl.NewRow();

              row["TABLE_CATALOG"] = strCatalog;
              row["TABLE_NAME"] = rd.GetString(2);
              row["TABLE_TYPE"] = strItem;
              row["TABLE_ID"] = rd.GetInt64(5);
              row["TABLE_ROOTPAGE"] = rd.GetInt32(3);

              tbl.Rows.Add(row);
            }
          }
        }
      }

      tbl.AcceptChanges();
      tbl.EndLoadData();

      return tbl;
    }

    /// <summary>
    /// Retrieves view schema information for the database
    /// </summary>
    /// <param name="strCatalog">The catalog (attached database) to retrieve views on</param>
    /// <param name="strView">The view name, can be null</param>
    /// <returns>DataTable</returns>
    private DataTable Schema_Views(string strCatalog, string strView)
    {
      DataTable tbl = new DataTable("Views");
      DataRow row;
      string strItem;
      int nPos;

      tbl.Locale = CultureInfo.InvariantCulture;
      tbl.Columns.Add("TABLE_CATALOG", typeof(string));
      tbl.Columns.Add("TABLE_SCHEMA", typeof(string));
      tbl.Columns.Add("TABLE_NAME", typeof(string));
      tbl.Columns.Add("VIEW_DEFINITION", typeof(string));
      tbl.Columns.Add("CHECK_OPTION", typeof(bool));
      tbl.Columns.Add("IS_UPDATABLE", typeof(bool));
      tbl.Columns.Add("DESCRIPTION", typeof(string));
      tbl.Columns.Add("DATE_CREATED", typeof(DateTime));
      tbl.Columns.Add("DATE_MODIFIED", typeof(DateTime));

      tbl.BeginLoadData();

      if (String.IsNullOrEmpty(strCatalog)) strCatalog = "main";

      using (SQLiteCommand cmd = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "SELECT * FROM [{0}].[sqlite_master] WHERE [type] LIKE 'view'", strCatalog), this))
      using (SQLiteDataReader rd = (SQLiteDataReader)cmd.ExecuteReader())
      {
        while (rd.Read())
        {
          if (String.Compare(rd.GetString(1), strView, true, CultureInfo.InvariantCulture) == 0
            || String.IsNullOrEmpty(strView))
          {
            strItem = rd.GetString(4).Replace('\r', ' ').Replace('\n', ' ').Replace('\t', ' ');
            nPos = Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(strItem, " AS ", CompareOptions.IgnoreCase);
            if (nPos > -1)
            {
              strItem = strItem.Substring(nPos + 4).Trim();
              row = tbl.NewRow();

              row["TABLE_CATALOG"] = strCatalog;
              row["TABLE_NAME"] = rd.GetString(2);
              row["IS_UPDATABLE"] = false;
              row["VIEW_DEFINITION"] = strItem;

              tbl.Rows.Add(row);
            }
          }
        }
      }

      tbl.AcceptChanges();
      tbl.EndLoadData();

      return tbl;
    }

    /// <summary>
    /// Retrieves catalog (attached databases) schema information for the database
    /// </summary>
    /// <param name="strCatalog">The catalog to retrieve, can be null</param>
    /// <returns>DataTable</returns>
    private DataTable Schema_Catalogs(string strCatalog)
    {
      DataTable tbl = new DataTable("Catalogs");
      DataRow row;

      tbl.Locale = CultureInfo.InvariantCulture;
      tbl.Columns.Add("CATALOG_NAME", typeof(string));
      tbl.Columns.Add("DESCRIPTION", typeof(string));
      tbl.Columns.Add("ID", typeof(long));

      tbl.BeginLoadData();

      using (SQLiteCommand cmd = new SQLiteCommand("PRAGMA database_list", this))
      using (SQLiteDataReader rd = (SQLiteDataReader)cmd.ExecuteReader())
      {
        while (rd.Read())
        {
          if (String.Compare(rd.GetString(1), strCatalog, true, CultureInfo.InvariantCulture) == 0
            || strCatalog == null)
          {
            row = tbl.NewRow();

            row["CATALOG_NAME"] = rd.GetString(1);
            row["DESCRIPTION"] = rd.GetString(2);
            row["ID"] = rd.GetInt64(0);

            tbl.Rows.Add(row);
          }
        }
      }

      tbl.AcceptChanges();
      tbl.EndLoadData();

      return tbl;
    }

    private DataTable Schema_DataTypes()
    {
      DataTable tbl = new DataTable("DataTypes");

      tbl.Locale = CultureInfo.InvariantCulture;
      tbl.Columns.Add("TypeName", typeof(String));
      tbl.Columns.Add("ProviderDbType", typeof(int));
      tbl.Columns.Add("ColumnSize", typeof(long));
      tbl.Columns.Add("CreateFormat", typeof(String));
      tbl.Columns.Add("CreateParameters", typeof(String));
      tbl.Columns.Add("DataType", typeof(String));
      tbl.Columns.Add("IsAutoIncrementable", typeof(bool));
      tbl.Columns.Add("IsBestMatch", typeof(bool));
      tbl.Columns.Add("IsCaseSensitive", typeof(bool));
      tbl.Columns.Add("IsFixedLength", typeof(bool));
      tbl.Columns.Add("IsFixedPrecisionScale", typeof(bool));
      tbl.Columns.Add("IsLong", typeof(bool));
      tbl.Columns.Add("IsNullable", typeof(bool));
      tbl.Columns.Add("IsSearchable", typeof(bool));
      tbl.Columns.Add("IsSearchableWithLike", typeof(bool));
      tbl.Columns.Add("IsLiteralSupported", typeof(bool));
      tbl.Columns.Add("LiteralPrefix", typeof(String));
      tbl.Columns.Add("LiteralSuffix", typeof(String));
      tbl.Columns.Add("IsUnsigned", typeof(bool));
      tbl.Columns.Add("MaximumScale", typeof(short));
      tbl.Columns.Add("MinimumScale", typeof(short));
      tbl.Columns.Add("IsConcurrencyType", typeof(bool));

      tbl.BeginLoadData();

      IO.StringReader reader = new IO.StringReader(SR.DataTypes);
      tbl.ReadXml(reader);
      reader.Close();

      tbl.AcceptChanges();
      tbl.EndLoadData();

      return tbl;
    }

    /// <summary>
    /// Returns the base column information for indexes in a database
    /// </summary>
    /// <param name="strCatalog">The catalog to retrieve indexes for (can be null)</param>
    /// <param name="strTable">The table to restrict index information by (can be null)</param>
    /// <param name="strIndex">The index to restrict index information by (can be null)</param>
    /// <param name="strColumn">The source column to restrict index information by (can be null)</param>
    /// <returns>A DataTable containing the results</returns>
    private DataTable Schema_IndexColumns(string strCatalog, string strTable, string strIndex, string strColumn)
    {
      DataTable tbl = new DataTable("IndexColumns");
      DataRow row;
      List<KeyValuePair<int, string>> primaryKeys = new List<KeyValuePair<int, string>>();
      bool maybeRowId;

      tbl.Locale = CultureInfo.InvariantCulture;
      tbl.Columns.Add("CONSTRAINT_CATALOG", typeof(string));
      tbl.Columns.Add("CONSTRAINT_SCHEMA", typeof(string));
      tbl.Columns.Add("CONSTRAINT_NAME", typeof(string));
      tbl.Columns.Add("TABLE_CATALOG", typeof(string));
      tbl.Columns.Add("TABLE_SCHEMA", typeof(string));
      tbl.Columns.Add("TABLE_NAME", typeof(string));
      tbl.Columns.Add("COLUMN_NAME", typeof(string));
      tbl.Columns.Add("ORDINAL_POSITION", typeof(int));
      tbl.Columns.Add("INDEX_NAME", typeof(string));

      if (String.IsNullOrEmpty(strCatalog)) strCatalog = "main";

      tbl.BeginLoadData();

      using (SQLiteCommand cmdTables = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "SELECT * FROM [{0}].[sqlite_master] WHERE [type] LIKE 'table'", strCatalog), this))
      using (SQLiteDataReader rdTables = cmdTables.ExecuteReader())
      {
        while (rdTables.Read())
        {
          maybeRowId = false;
          primaryKeys.Clear();
          if (String.IsNullOrEmpty(strTable) || String.Compare(rdTables.GetString(2), strTable, true, CultureInfo.InvariantCulture) == 0)
          {
            using (SQLiteCommand cmdTable = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "PRAGMA [{0}].table_info([{1}])", strCatalog, rdTables.GetString(2)), this))
            using (SQLiteDataReader rdTable = cmdTable.ExecuteReader())
            {
              while (rdTable.Read())
              {
                if (rdTable.GetInt32(5) == 1) // is a primary key
                {
                  primaryKeys.Add(new KeyValuePair<int, string>(rdTable.GetInt32(0), rdTable.GetString(1)));
                  // Is an integer -- could be a rowid if no other primary keys exist in the table
                  if (String.Compare(rdTable.GetString(2), "INTEGER", true, CultureInfo.InvariantCulture) == 0)
                    maybeRowId = true;
                }
              }
            }
            if (primaryKeys.Count == 1 && maybeRowId == true)
            {
              row = tbl.NewRow();
              row["CONSTRAINT_CATALOG"] = strCatalog;
              row["CONSTRAINT_NAME"] = String.Format(CultureInfo.InvariantCulture, "sqlite_master_PK_{0}", rdTables.GetString(2));
              row["TABLE_CATALOG"] = strCatalog;
              row["TABLE_NAME"] = rdTables.GetString(2);
              row["COLUMN_NAME"] = primaryKeys[0].Value;
              row["INDEX_NAME"] = row["CONSTRAINT_NAME"];
              row["ORDINAL_POSITION"] = primaryKeys[0].Key;

              if (String.IsNullOrEmpty(strIndex) || String.Compare(strIndex, (string)row["INDEX_NAME"], true, CultureInfo.InvariantCulture) == 0)
                tbl.Rows.Add(row);
            }

            using (SQLiteCommand cmdIndexes = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "SELECT * FROM [{0}].[sqlite_master] WHERE [type] LIKE 'index' AND [tbl_name] LIKE '{1}'", strCatalog, rdTables.GetString(2).Replace("'", "''")), this))
            using (SQLiteDataReader rdIndexes = cmdIndexes.ExecuteReader())
            {
              while (rdIndexes.Read())
              {
                if (String.IsNullOrEmpty(strIndex) || String.Compare(strIndex, rdIndexes.GetString(1), true, CultureInfo.InvariantCulture) == 0)
                {
                  using (SQLiteCommand cmdIndex = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "PRAGMA [{0}].index_info([{1}])", strCatalog, rdIndexes.GetString(1)), this))
                  using (SQLiteDataReader rdIndex = cmdIndex.ExecuteReader())
                  {
                    while (rdIndex.Read())
                    {
                      row = tbl.NewRow();
                      row["CONSTRAINT_CATALOG"] = strCatalog;
                      row["CONSTRAINT_NAME"] = rdIndexes.GetString(1);
                      row["TABLE_CATALOG"] = strCatalog;
                      row["TABLE_NAME"] = rdIndexes.GetString(2);
                      row["COLUMN_NAME"] = rdIndex.GetString(2);
                      row["INDEX_NAME"] = rdIndexes.GetString(1);
                      row["ORDINAL_POSITION"] = rdIndex.GetInt32(1);

                      if (String.IsNullOrEmpty(

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产色综合久久不卡蜜臀 | 亚洲女爱视频在线| 91网站在线观看视频| 综合网在线视频| 欧美日韩美少妇 | 久久精品国产亚洲aⅴ| 91麻豆精品国产综合久久久久久| 国产精品青草综合久久久久99| 99久久久无码国产精品| 亚洲免费观看高清| 欧美一区二区三区日韩| 麻豆91在线播放免费| 国产精品久久久久久久久久久免费看 | 亚洲天堂av老司机| 欧美精品第一页| 国产一区二区三区香蕉| 亚洲男人的天堂一区二区| 欧美精品一二三四| 国产91精品一区二区麻豆亚洲| 国产午夜亚洲精品午夜鲁丝片 | 欧美综合在线视频| 激情综合网激情| 亚洲欧美电影一区二区| 日韩三级在线观看| 91小视频在线| 蜜臀av一级做a爰片久久| 中文字幕av不卡| 91麻豆精品国产91久久久久 | 成人一区二区三区| 日本vs亚洲vs韩国一区三区二区| 日本一区二区三区免费乱视频| 欧美日韩国产区一| 99精品视频在线观看| 国产在线视频精品一区| 日韩国产欧美在线视频| 一色屋精品亚洲香蕉网站| 久久亚洲精华国产精华液| 91精品国产综合久久福利| 91一区二区三区在线观看| 国产 欧美在线| 精品夜夜嗨av一区二区三区| 日韩精品国产精品| 婷婷夜色潮精品综合在线| 亚洲欧美激情一区二区| 亚洲天天做日日做天天谢日日欢| 精品免费99久久| 久久婷婷成人综合色| 欧美zozozo| 精品乱码亚洲一区二区不卡| 日韩一级大片在线观看| 欧美α欧美αv大片| 精品国精品自拍自在线| 欧美成人免费网站| 精品欧美一区二区在线观看| 精品国免费一区二区三区| 精品久久久久久久久久久久久久久久久 | 欧美日韩一区在线观看| 免费欧美日韩国产三级电影| 亚洲天堂免费看| 亚洲综合自拍偷拍| 日韩国产欧美视频| 国产一区二区三区综合| 国产精品18久久久久久vr| 成人午夜在线播放| 在线精品视频免费观看| 这里只有精品免费| 久久久影院官网| 亚洲人午夜精品天堂一二香蕉| 亚洲精品国产精华液| 日韩精品免费专区| 国产一区二区精品在线观看| 91在线观看免费视频| 欧美精品久久一区二区三区| 精品久久久久久久久久久久久久久 | 专区另类欧美日韩| 午夜精品久久久久久久久久| 午夜a成v人精品| 成人av网站免费| 日韩欧美亚洲另类制服综合在线| 国产视频一区二区三区在线观看| 一区二区三区视频在线看| 免费精品99久久国产综合精品| 成人av在线网| 欧美大片拔萝卜| 欧美aaaaa成人免费观看视频| 国产精品2024| 欧美一区二区成人| 亚洲美女少妇撒尿| 国产一区二区看久久| 欧美日韩不卡在线| 亚洲欧美一区二区视频| 国产老女人精品毛片久久| 91精品国产综合久久精品图片| 中文字幕一区av| 国产精品123| 精品国产乱码久久久久久影片| 亚洲国产日韩a在线播放性色| 国产成人免费xxxxxxxx| 日韩午夜激情视频| 香蕉影视欧美成人| 在线影视一区二区三区| 欧美国产日韩亚洲一区| 国产乱码一区二区三区| 日韩视频一区二区三区| 日韩高清中文字幕一区| 欧美日韩精品一区二区三区 | 91天堂素人约啪| 亚洲国产成人私人影院tom| 国产在线视频一区二区| 精品美女一区二区三区| 韩日av一区二区| 国产婷婷一区二区| 天堂av在线一区| 在线电影欧美成精品| 免费成人在线影院| 精品三级在线看| 国产精品一品二品| 日韩一区有码在线| 久久爱www久久做| 欧美高清www午色夜在线视频| 亚洲国产精品一区二区久久恐怖片| 972aa.com艺术欧美| 综合欧美亚洲日本| 欧美日免费三级在线| 日韩高清一区在线| 国产日韩欧美精品在线| 成人av片在线观看| 亚洲国产你懂的| 一区二区三区 在线观看视频| 色屁屁一区二区| 亚欧色一区w666天堂| 久久这里只有精品首页| 成人av在线资源网站| 午夜精品福利在线| 国产日韩v精品一区二区| 一本到不卡免费一区二区| 亚洲曰韩产成在线| 国产午夜亚洲精品理论片色戒| 欧洲一区二区三区在线| 国模娜娜一区二区三区| 亚洲女与黑人做爰| 精品裸体舞一区二区三区| 9色porny自拍视频一区二区| 日韩成人精品在线观看| 国产精品超碰97尤物18| 欧美电影免费观看高清完整版 | 欧美三电影在线| 高清在线观看日韩| 免费不卡在线视频| 亚洲综合色视频| 中文字幕一区二区三区色视频| 欧美一区二区三区免费大片| 91视视频在线观看入口直接观看www| 日韩成人午夜电影| 亚洲一区二区三区四区五区黄| 国产精品视频一二三区| 精品国产三级电影在线观看| 在线观看日产精品| 色综合久久中文综合久久牛| 久久成人综合网| 天堂av在线一区| 国产盗摄一区二区三区| 日韩极品在线观看| 五月天欧美精品| 香蕉成人伊视频在线观看| 亚洲码国产岛国毛片在线| 欧美韩日一区二区三区| 国产欧美一区二区三区网站| 欧美电视剧在线观看完整版| 欧美人xxxx| 日韩欧美电影在线| 久久中文字幕电影| 久久久久久久久蜜桃| 国产日韩亚洲欧美综合| 久久久99久久精品欧美| 久久精品在线免费观看| 国产亚洲综合在线| 欧美激情综合网| 亚洲欧美一区二区三区国产精品| 中文字幕中文乱码欧美一区二区 | 欧美日韩国产中文| 91精品蜜臀在线一区尤物| 欧美一区二区成人6969| 久久久美女毛片| 欧美国产欧美亚州国产日韩mv天天看完整| 国产欧美日韩视频一区二区| 国产精品久久久久7777按摩| 亚洲精品少妇30p| 亚洲一卡二卡三卡四卡| 日韩福利视频导航| 国产传媒日韩欧美成人| 色婷婷av久久久久久久| 91精品国产欧美日韩| 午夜精品成人在线视频| 欧美一区二区三区的| 欧美久久高跟鞋激| 久久精品欧美一区二区三区不卡 | 欧美日韩一卡二卡三卡| 国产日产欧产精品推荐色| 日韩精品电影一区亚洲|