コード例 #1
0
ファイル: UnitTest.cs プロジェクト: MonetDB/MonetDB-.Net
        public void ConnectionStringBuilderTest()
        {
            var cs = new MonetDbConnectionStringBuilder();

            Assert.AreEqual(cs.ConnectionString, cs.ToString());
            Assert.AreEqual(cs.ConnectionString, "Host=localhost;Port=50000;PoolMinimum=0;PoolMaximum=100");

            cs.Host     = "localhost";
            cs.Port     = 12345;
            cs.Username = "******";
            cs.Password = "******";
            Assert.AreEqual(cs.ConnectionString, cs.ToString());
            Assert.AreEqual(cs.ConnectionString, "Host=localhost;Port=12345;PoolMinimum=0;PoolMaximum=100;Username=testUser;Password=testPwd");

            cs = new MonetDbConnectionStringBuilder
            {
                Host     = "localhost",
                Port     = 12345,
                Username = "******",
                Password = "******"
            };
            Assert.AreEqual(cs.ConnectionString, cs.ToString());
            Assert.AreEqual(cs.ConnectionString, "Host=localhost;Port=12345;PoolMinimum=0;PoolMaximum=100;Username=testUser;Password=testPwd");

            cs = new MonetDbConnectionStringBuilder
            {
                ConnectionString = "HOST=localhost;PORT=12345;PoolMinimum=0;PoolMaximum=100;Username=testUser;Password=testPwd"
            };
            Assert.AreEqual("localhost", cs.Host);
            Assert.AreEqual(12345, cs.Port);
            Assert.AreEqual("testUser", cs.Username);
            Assert.AreEqual("testPwd", cs.Password);
        }
コード例 #2
0
        public object Execute([FromBody] Request request)
        {
            try
            {
                var csb = new MonetDbConnectionStringBuilder
                {
                    Host     = request.Host,
                    Port     = request.Port,
                    Username = request.Username,
                    Password = request.Password,
                    Database = request.Database
                };

                using (var connection = new MonetDbConnection(csb.ToString()))
                {
                    connection.Open();

                    using (var command = connection.CreateCommand())
                    {
                        lastCommand = command;

                        command.CommandText = request.Query;

                        using (var reader = command.ExecuteReader())
                        {
                            var result = new Result(reader.FieldCount);
                            for (int i = 0; i < reader.FieldCount; i++)
                            {
                                result.Meta[i] = reader.GetName(i);
                            }

                            while (reader.Read())
                            {
                                var row = new object[reader.FieldCount];
                                for (int i = 0; i < reader.FieldCount; i++)
                                {
                                    row[i] = reader.GetValue(i);
                                }

                                result.Data.Add(row);
                            }

                            return(result);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(new
                {
                    Error = ex.Message + Environment.NewLine + ex.StackTrace
                });
            }
        }