public void Read()
        {
            IParameterFactory   parameterFactory   = new SqliteParameterFactory();
            IDataAdapterFactory dataAdapterFactory = new SqliteDataAdapterFactory();
            IConnectionFactory  connectionFactory  = new SqliteConnectionFactory();

            using (var connection = connectionFactory.Open(_connectionString))
                using (var command = new Command(connection, parameterFactory))
                    using (var reader = new SqlReader(connection, parameterFactory, dataAdapterFactory))
                    {
                        command.Execute("drop table if exists ReadTest");
                        command.Execute("create table if not exists ReadTest(TestColumn text)");
                        //command.Execute("insert into ReadTest values(null)");
                        command.Execute("insert into ReadTest values('one')");
                        command.Execute("insert into ReadTest values('two')");

                        var dataSet = reader.Read("select * from ReadTest");
                        //reader.Prepare("select * from ReadTest");
                        //using (var dataReader = reader.ExecuteReader(null))
                        //{
                        //    while (dataReader.Read())
                        //    {
                        //        for (var i = 0; i < dataReader.FieldCount; ++i)
                        //        {
                        //            var isnull = dataReader.IsDBNull(i);
                        //            var o = dataReader.GetValue(i);
                        //        }
                        //    }
                        //}
                        Assert.IsNotNull(dataSet);
                        Assert.AreEqual(1, dataSet.Tables.Count);
                        Assert.IsTrue(dataSet.Tables[0].Rows.Count > 0);
                    }
        }
예제 #2
0
        public async Task OpenAsync()
        {
            IConnectionFactory factory = new SqliteConnectionFactory();

            using (var connection = await factory.OpenAsync(_connectionString))
            {
                Assert.IsNotNull(connection);
                Assert.AreEqual(ConnectionState.Open, connection.State);
                connection.Close();
            }
        }
예제 #3
0
        public void Open()
        {
            IConnectionFactory factory = new SqliteConnectionFactory();

            using (var connection = factory.Open(_connectionString))
            {
                Assert.IsNotNull(connection);
                Assert.AreEqual(ConnectionState.Open, connection.State);
                connection.Close();
            }
        }
        public void Constructor()
        {
            IParameterFactory   parameterFactory   = new SqliteParameterFactory();
            IDataAdapterFactory dataAdapterFactory = new SqliteDataAdapterFactory();
            IConnectionFactory  connectionFactory  = new SqliteConnectionFactory();

            using (var connection = connectionFactory.Open(_connectionString))
                using (var reader = new SqlReader(connection, parameterFactory, dataAdapterFactory))
                {
                    Assert.IsNotNull(reader);
                }
        }
        public void BeginTransaction()
        {
            ITransactionFactory transactionFactory = new TransactionFactory();
            IConnectionFactory  connectionFactory  = new SqliteConnectionFactory();

            using (var connection = connectionFactory.Open(_connectionString))
                using (var transaction = transactionFactory.BeginTransaction(connection))
                {
                    Assert.IsNotNull(transaction);
                    Assert.AreEqual(connection, transaction.Connection);
                    Assert.AreEqual(IsolationLevel.Serializable, transaction.IsolationLevel);
                    transaction.Rollback();
                }
        }
        public void CreateDataAdapter()
        {
            Assert.IsTrue(_connectionString.CompareTo(_connectionString.ToUTF8()) == 0);

            IDataAdapterFactory dataAdapterFactory = new SqliteDataAdapterFactory();
            IConnectionFactory  connectionFactory  = new SqliteConnectionFactory();

            using (var connection = connectionFactory.Open(_connectionString))
                using (var command = connection.CreateCommand())
                    using (var dataAdapter = dataAdapterFactory.CreateDataAdapter(command))
                    {
                        Assert.IsNotNull(dataAdapter);
                        Assert.AreEqual(command, dataAdapter.SelectCommand);
                    }
        }
        public void BeginTransaction_WithIsolationLevel_Failure()
        {
            // sqlite only supports IsolationLevel.Serializable
            ITransactionFactory transactionFactory = new TransactionFactory();
            IConnectionFactory  connectionFactory  = new SqliteConnectionFactory();

            using (var connection = connectionFactory.Open(_connectionString))
                using (var transaction = transactionFactory.BeginTransaction(connection, IsolationLevel.Snapshot))
                {
                    Assert.IsNotNull(transaction);
                    Assert.AreEqual(connection, transaction.Connection);
                    Assert.AreEqual(IsolationLevel.Snapshot, transaction.IsolationLevel);
                    transaction.Rollback();
                }
        }
        public void Read_Count()
        {
            IParameterFactory   parameterFactory   = new SqliteParameterFactory();
            IDataAdapterFactory dataAdapterFactory = new SqliteDataAdapterFactory();
            IConnectionFactory  connectionFactory  = new SqliteConnectionFactory();

            using (var connection = connectionFactory.Open(_connectionString))
                using (var command = new Command(connection, parameterFactory))
                    using (var reader = new SqlReader(connection, parameterFactory, dataAdapterFactory))
                    {
                        command.Execute("drop table if exists ReadCountTest");
                        command.Execute("create table if not exists ReadCountTest(TestColumn text)");
                        command.Execute("insert into ReadCountTest values('one')");
                        command.Execute("insert into ReadCountTest values('two')");

                        var dataSet = reader.Read("select count(*) from ReadCountTest");
                        Assert.IsNotNull(dataSet);
                        Assert.AreEqual(1, dataSet.Tables.Count);
                        Assert.AreEqual(1, dataSet.Tables[0].Rows.Count);
                        Assert.AreEqual(2L, (long)dataSet.Tables[0].Rows[0][0]);
                    }
        }
        public void Read_WithParams()
        {
            IParameterFactory   parameterFactory   = new SqliteParameterFactory();
            IDataAdapterFactory dataAdapterFactory = new SqliteDataAdapterFactory();
            IConnectionFactory  connectionFactory  = new SqliteConnectionFactory();

            using (var connection = connectionFactory.Open(_connectionString))
                using (var command = new Command(connection, parameterFactory))
                    using (var reader = new SqlReader(connection, parameterFactory, dataAdapterFactory))
                    {
                        command.Execute("drop table if exists ReadWParamsTest");
                        command.Execute("create table if not exists ReadWParamsTest(TestId integer primary key autoincrement, TestValue text)");
                        command.Execute("insert into ReadWParamsTest(TestValue) values('one')");
                        command.Execute("insert into ReadWParamsTest(TestValue) values('two')");

                        var dataSet = reader.Read("select * from ReadWParamsTest where TestId=@TestId", new Dictionary <string, object> {
                            ["TestId"] = 1
                        });
                        Assert.IsNotNull(dataSet);
                        Assert.AreEqual(1, dataSet.Tables.Count);
                        Assert.AreEqual(1, dataSet.Tables[0].Rows.Count);
                    }
        }