示例#1
0
        public static List <String> GetChannels()
        {
            List <String> entries = new List <string>();
            string        dbpath  = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "sqliteSample.db");

            using (Microsoft.Data.Sqlite.SqliteConnection db =
                       new Microsoft.Data.Sqlite.SqliteConnection($"Filename={dbpath}"))
            {
                db.Open();

                Microsoft.Data.Sqlite.SqliteCommand selectCommand = new Microsoft.Data.Sqlite.SqliteCommand
                                                                        ("SELECT name from channels", db);

                Microsoft.Data.Sqlite.SqliteDataReader query = selectCommand.ExecuteReader();

                while (query.Read())
                {
                    entries.Add(query.GetString(0));
                }

                /*foreach(var entry in entries)
                 * {
                 *  System.Diagnostics.Debug.WriteLine("------------------------------------"+entry);
                 * }
                 * //System.Diagnostics.Debug.WriteLine("++++++++++++++++++++++" + entries[2]);*/
                db.Close();
            }
            return(entries);
        }
示例#2
0
        public static List <post> GetPosts(string channel)
        {
            List <post>   posts    = new List <post>();
            List <string> contents = new List <string>();
            List <string> titles   = new List <string>();
            string        dbpath   = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "sqliteSample.db");

            using (Microsoft.Data.Sqlite.SqliteConnection db =
                       new Microsoft.Data.Sqlite.SqliteConnection($"Filename={dbpath}"))
            {
                db.Open();

                Microsoft.Data.Sqlite.SqliteCommand selectCommand = new Microsoft.Data.Sqlite.SqliteCommand
                                                                        ("SELECT title from General", db);
                //selectCommand.Parameters.AddWithValue("@channel", channel);


                String selCommand = "SELECT title from " + channel;
                Microsoft.Data.Sqlite.SqliteCommand selection = new Microsoft.Data.Sqlite.SqliteCommand(selCommand, db);


                System.Diagnostics.Debug.WriteLine("---------------------" + channel);
                Microsoft.Data.Sqlite.SqliteDataReader query = selection.ExecuteReader();

                while (query.Read())
                {
                    titles.Add(query.GetString(0));
                }
                System.Diagnostics.Debug.WriteLine("++++++++++++++++++++++" + titles.Count());
                System.Diagnostics.Debug.WriteLine("========================" + titles[0]);

                Microsoft.Data.Sqlite.SqliteCommand selectCommand2 = new Microsoft.Data.Sqlite.SqliteCommand
                                                                         ("SELECT content from General", db);
                //selectCommand2.Parameters.AddWithValue("@channel", channel);

                String selCommand2 = "SELECT content from " + channel;
                Microsoft.Data.Sqlite.SqliteCommand selection2 = new Microsoft.Data.Sqlite.SqliteCommand(selCommand2, db);

                Microsoft.Data.Sqlite.SqliteDataReader query2 = selection2.ExecuteReader();
                while (query2.Read())
                {
                    contents.Add(query2.GetString(0));
                }
                db.Close();
            }
            System.Diagnostics.Debug.WriteLine("++++++++++++++++++++++" + titles.Count());
            int k = 0;

            for (int i = 0; i < titles.Count(); i++)
            {
                post p = new post();
                p.content = contents[i];
                p.title   = titles[i];
                posts.Add(p);
            }

            return(posts);
        }
示例#3
0
        /// <summary>
        /// 执行标准的SQL语句并返回单行数据
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public Row GetRow(string sql)
        {
            //throw new NotImplementedException();
            Row row = new Row();

            using (Microsoft.Data.Sqlite.SqliteCommand sqlCommand = new Microsoft.Data.Sqlite.SqliteCommand(sql, dbc)) {
                using (Microsoft.Data.Sqlite.SqliteDataReader reader = sqlCommand.ExecuteReader(System.Data.CommandBehavior.Default)) {
                    if (reader.Read())
                    {
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            //item.Set(SqlReader.GetName(i), SqlReader[i].ToString());
                            string szName = reader.GetName(i);
                            row[szName] = reader[i].ToString();
                        }
                    }

                    reader.Close();
                }
            }
            return(row);
        }
示例#4
0
        public static List <String> TestGet(string name)
        {
            List <String> entries = new List <string>();
            string        dbpath  = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "sqliteSample.db");

            using (Microsoft.Data.Sqlite.SqliteConnection db =
                       new Microsoft.Data.Sqlite.SqliteConnection($"Filename={dbpath}"))
            {
                db.Open();

                Microsoft.Data.Sqlite.SqliteCommand selectCommand = new Microsoft.Data.Sqlite.SqliteCommand
                                                                        ("SELECT password from users WHERE username = '******'", db);

                Microsoft.Data.Sqlite.SqliteDataReader query = selectCommand.ExecuteReader();

                while (query.Read())
                {
                    entries.Add(query.GetString(0));
                }

                db.Close();
            }
            return(entries);
        }
示例#5
0
        public static void ReadValue(SQLiteDataReader reader, int index, TypeStorage type, ICdlValueWriter writer)
        {
            switch (type)
            {
            case TypeStorage.Boolean:
                writer.SetBoolean(reader.GetInt32(index) != 0);
                break;

            case TypeStorage.Byte:
                writer.SetByte((byte)reader.GetInt32(index));
                break;

            case TypeStorage.Int16:
                writer.SetInt16((short)reader.GetInt32(index));
                break;

            case TypeStorage.Int32:
                writer.SetInt32((int)reader.GetInt32(index));
                break;

            case TypeStorage.Int64:
                writer.SetInt64((long)reader.GetInt64(index));
                break;

            case TypeStorage.SByte:
                writer.SetSByte((sbyte)reader.GetInt32(index));
                break;

            case TypeStorage.UInt16:
                writer.SetUInt16((ushort)reader.GetInt32(index));
                break;

            case TypeStorage.UInt32:
                writer.SetUInt32((uint)reader.GetInt32(index));
                break;

            case TypeStorage.UInt64:
                writer.SetUInt64((ulong)reader.GetInt64(index));
                break;

            case TypeStorage.DateTime:
                writer.SetDateTime(DateTime.Parse(reader.GetString(index), CultureInfo.InvariantCulture));
                //writer.SetDateTime(DateTime.ParseExact(reader.GetString(index), "s", CultureInfo.InvariantCulture));
                break;

            case TypeStorage.DateTimeEx:
                writer.SetDateTimeEx(DateTimeEx.ParseNormalized(reader.GetString(index)));
                break;

            case TypeStorage.DateEx:
                writer.SetDateEx(DateEx.ParseNormalized(reader.GetString(index)));
                break;

            case TypeStorage.TimeEx:
                writer.SetTimeEx(TimeEx.ParseNormalized(reader.GetString(index)));
                break;

            case TypeStorage.Decimal:
            {
                var     dtype = reader.GetFieldType(index);
                decimal value;
                if (dtype == typeof(string))
                {
                    value = Decimal.Parse(reader.GetString(index), CultureInfo.InvariantCulture);
                }
                else
                {
                    value = (decimal)reader.GetDouble(index);
                }
                writer.SetDecimal(value);
            }
            break;

            case TypeStorage.Float:
                writer.SetFloat((float)reader.GetDouble(index));
                break;

            case TypeStorage.Double:
                writer.SetDouble((double)reader.GetDouble(index));
                break;

            case TypeStorage.String:
                writer.SetString(reader.GetString(index));
                break;

            case TypeStorage.Guid:
                writer.SetGuid(new Guid(reader.GetString(index)));
                break;

            case TypeStorage.ByteArray:
                writer.SetByteArray((byte[])reader.GetValue(index));
                break;

            case TypeStorage.Null:
                writer.SetNull();
                break;

            default:
                throw new Exception("DBSH-00167 Unsupported field type:" + type.ToString());
            }
        }