コード例 #1
0
        public JSResults Select(string queryString)
        {
            JSResults result = new JSResults();

            MySqlConnection conn = new MySqlConnection(connStr);

            try
            {
                conn.Open();

                MySqlCommand    cmd    = new MySqlCommand(queryString, conn);
                MySqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    JSResult item = new JSResult();
                    Console.WriteLine(reader.VisibleFieldCount);
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        try
                        {
                            if (item.ContainsKey(reader.GetName(i)))
                            {
                                continue;
                            }
                            switch (reader.GetValue(i).ToString())
                            {
                            case "System.Byte[]":
                                byte[] data = (byte[])reader[reader.GetName(i)];
                                item.Add(reader.GetName(i), data);
                                break;

                            default:
                                item.Add(reader.GetName(i), reader.GetString(i));
                                break;
                            }
                        }
                        catch (System.Data.SqlTypes.SqlNullValueException ex)
                        {
                            item.Add(reader.GetName(i), null);
                        }
                    }
                    result.Add(item);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                conn.Close();
            }
            return(result);
        }
コード例 #2
0
        /// <summary>
        /// - 쿼리 입력 시에 마지막에 limit를 자동으로 입력해줌.
        /// - 쿼리 마지막에 ';' 입력 금지
        /// </summary>
        /// <param name="queryString"></param>
        /// <param name="limit"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public JSResults Select_Paging(string queryString, int limit, int page)
        {
            JSResults       result = new JSResults();
            MySqlConnection conn   = new MySqlConnection(connStr);

            try
            {
                conn.Open();

                MySqlCommand    cmd    = new MySqlCommand(queryString + " LIMIT " + (limit * (page - 1)) + ", " + limit + ";", conn);
                MySqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    JSResult item = new JSResult();
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        try
                        {
                            switch (reader.GetValue(i).ToString())
                            {
                            case "System.Byte[]":
                                byte[] data = (byte[])reader[reader.GetName(i)];
                                item.Add(reader.GetName(i), data);
                                break;

                            default:
                                item.Add(reader.GetName(i), reader.GetString(i));
                                break;
                            }
                        }
                        catch (System.Data.SqlTypes.SqlNullValueException ex)
                        {
                            item.Add(reader.GetName(i), null);
                        }
                    }
                    result.Add(item);
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                conn.Close();
            }
            return(result);
        }
コード例 #3
0
        public JSResults Select(string query)
        {
            if (true == ConnectToOracle())
            {
                JSResults result = new JSResults();
                Dictionary <int, byte[]> images = new Dictionary <int, byte[]>();

                OracleCommand    oracle_cmd    = new OracleCommand(query, connToORACLE);
                OracleDataReader oracle_reader = oracle_cmd.ExecuteReader();
                try
                {
                    while (oracle_reader.Read())
                    {
                        JSResult item = new JSResult();
                        for (int i = 0; i < oracle_reader.FieldCount; i++)
                        {
                            string s = oracle_reader.GetName(i);
                            item.Add(oracle_reader.GetName(i), (string)oracle_reader.GetValue(i).ToString());
                            //오라클 바이트처리 해야됨......
                        }
                        result.Add(item);
                    }
                }
                finally
                {
                    UnconnectToOracle();
                }
                if (result.Count != 0)
                {
                    return(result);
                }
                else
                {
                    return(null);
                }
            }
            return(null);
        }
コード例 #4
0
        public JSResults Select(string queryString)
        {
            JSResults result = new JSResults();

            try
            {
                conn.Open();
                using (var command = new NpgsqlCommand())
                {
                    command.Connection  = conn;
                    command.CommandText = queryString;

                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            JSResult item = new JSResult();
                            for (int i = 0; i < reader.FieldCount; i++)
                            {
                                if (reader.IsDBNull(i) == false)
                                {
                                    Console.WriteLine(reader.GetName(i) + " : " + reader.GetPostgresType(i).ToString());
                                    switch (reader.GetPostgresType(i).ToString())
                                    {
                                    //case :
                                    //    byte[] data = (byte[])reader[reader.GetName(i)];
                                    //    item.Add(reader.GetName(i), data);
                                    //    break;

                                    case "integer":
                                        item.Add(reader.GetName(i), reader.GetInt32(i));
                                        break;

                                    case "date":
                                        item.Add(reader.GetName(i), reader.GetDate(i));
                                        break;

                                    case "timestamp without time zone":
                                        item.Add(reader.GetName(i), reader.GetTimeStamp(i));
                                        break;

                                    case "jsonb":
                                    case "character":
                                    case "character varying":
                                        item.Add(reader.GetName(i), reader.GetString(i));
                                        break;

                                    default:
                                        Console.WriteLine("===================" + reader.GetName(i) + " : " + reader.GetPostgresType(i).ToString());
                                        break;
                                    }
                                }
                                else
                                {
                                    item.Add(reader.GetName(i), null);
                                }
                            }
                            result.Add(item);
                        }

                        reader.Close();
                    }
                }
            }
            catch (Npgsql.PostgresException ex)
            {
                return(result);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                conn.Close();
            }
            return(result);
        }