DB: 2개의 글

C# SqLite 사용하기 - 3편

Posted by 고 고특파원
2019. 6. 26. 23:20 프로그래밍/C#

현재 글을 보기전에 1편과 2편을 보지 않았다면 아래링크를 통해서 이전 글을 보고 오길바란다.

 

2019/06/20 - [프로그래밍/C#] - C# SQLite 사용하기 - 1편

 

C# SQLite 사용하기 - 1편

가끔씩 C#을 이용하여 프로그램을 만들 때 간단한 DB를 사용해야 하는 경우가 생긴다. MSSQL Express버전을 사용하기엔 너무 무겁고, 개인적으로 Access를 이용한 MDB를 선호하지 않는다.. 이럴 때 Sqlite를 사용..

maelife.tistory.com

 

 

2019/06/23 - [프로그래밍/C#] - C# SQLite 사용하기 - 2편

 

C# SQLite 사용하기 - 2편

2. SQLite3.exe 실행파일 다운로드 이전 기본 셋팅하는 글을 보지 않고 넘어 왔다면, 이전글 참조 후 다음 글로 넘어 오시길 바랍니다. 2019/06/20 - [프로그래밍/C#] - C# SQLite 사용하기 - 1편 SQLite3.exe를..

maelife.tistory.com

 

그럼 이제 VisualStudio를 실행하여 간단한 응용프로그램을 만들어 보도록 한다.

 

 

 

간단한 Windows 응용프로그램 프로젝트를 생성한다.

 

데이터베이스 접속 테스트를 위한 버튼을 다음과 같이 배치한다.

 

그리고 2편에서 만든 mydb.db 파일을 프로젝트에 추가하도록 한다.

 

 

솔루션탐색기에서 database라는 폴더를 생성하고 폴더안에 mydb.db 파일을 추가한다.

 

배포하기 위해 output Directory를 항상 'Copy always' 설정을 하면 된다.

 

 

다음으로 소스 부분을 보도록 한다.

 

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            this.btnConncet.Click += btnConncet_Click;
            this.btnSelect.Click += btnSelect_Click;
            this.btnInsert.Click += btnInsert_Click;
            this.btnDelete.Click += btnDelete_Click;
        }

        
        /// <summary>
        /// DB연결
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnConncet_Click(object sender, EventArgs e)
        {

            //string strConn = @"Data Source=C:\sqlite\mydb.db";
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");
            
            using (SQLiteConnection conn = new SQLiteConnection(strConn))
            {
                conn.Open();

                //string sql = "INSERT INTO member VALUES (100, 'Tom')";
                //SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                //cmd.ExecuteNonQuery();

                //cmd.CommandText = "DELETE FROM member WHERE Id=1";
                //cmd.ExecuteNonQuery();

                conn.Close();
            }

        }

        private void btnSelect_Click(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
            //string strConn = @"Data Source=C:\sqlite\mydb.db";
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");

            //SQLiteDataAdapter 클래스를 이용 비연결 모드로 데이타 읽기
            string sql = "SELECT * FROM test1";
            var adpt = new SQLiteDataAdapter(sql, strConn);
            adpt.Fill(ds);

        }

        private void btnInsert_Click(object sender, EventArgs e)
        {
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");

            using (SQLiteConnection conn = new SQLiteConnection(strConn))
            {
                conn.Open();
                string sql = "INSERT INTO test1 VALUES (2, '하이여')";
                SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                cmd.ExecuteNonQuery();

                
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");

            using (SQLiteConnection conn = new SQLiteConnection(strConn))
            {
                conn.Open();
                string sql = "DELETE FROM test1 WHERE id=1";
                
                SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                cmd.ExecuteNonQuery();
                
            }
        }

 

C#에서 제공하는 SQLiteConnection을 이용하여 데이터베이스에 접속 하고 관리할 수있다.

 

데이터베이스 연결문자열은 실제 프로젝트가 빌드되고 난 후의 위치를 잡아야 하기 때문에

Application.StartupPath 를 이용하여 *.db 파일이 있는 위치를 잡아주었다.

 

이처럼 C# 응용프로그램을 이용하여 무언가를 만들때 간단한 DB가 필요할때 SQLite를 이용하는것도 괜찮은 방법인것 같다.

이 댓글을 비밀 댓글로

안드로이드 웹 호스팅을 이용한 DB 연결

Posted by 고 고특파원
2016. 2. 21. 23:02 프로그래밍/안드로이드

현재 사용하고 있는 호스팅회사는 코리아 호스팅 회사이다~!

 

한달에 550원정도 하는 요금으로 웹호스팅을 받아서 DataBase의 일부 저장공간을 할당받아서 쓰고 있는 상태이다!

 

(만약 자신이 개발하는 애플리케이션의 규모나 이용자수가 많다면 좀 더 높은 비용을 주고 호스팅을 받아야한다. 필자는 단순 개발 및 테스트용이기 때문에 제일 싼 것으로 사용함.)

 

안드로이드를 이용해서 DB에 접속하고 Data를 주고 받기 위해서 호스팅을 하게 되었다.

 

이번에 안드로이드를 처음으로 시작하면서 알게된 사실은 안드로이드에서 직접 DB연결이 불가능하다는 것이내요! 보안상 직접적으로 연결하는것을 막아 놓았다고 한다...

 

그래서 DB에 접속하기 위해서는 PHP, JSP, ASP 등의 웹프로그래밍 언어를 통하여 DB를 접속하여 데이터를 주고받을수 있다.

 

현재 웹호스팅을 받고 있는 곳에서 php를 이용하여 DB접속을 하도록 해보겠다.

 

 

 

<?php

$host_name="호스트이름";

$db_user="DB유저명;

$db_pass="DB암호";

$db_name="사용할DB이름";

$conn = mysqli_connect($host_name, $db_user, $db_pass, $db_name);

if(mysqli_connect_errno($conn)){

echo "DB연결 실패";

}else{

echo "DB연결 성공";

}

 

?>

 

 

( 웹호스팅을 하고있는 상태에서 host_name 은 "localhost"로 쓰면된다.

필자도 정확하게는 알지 못하겠으나 웹호스팅을 받고있는 상태라면 웹호스팅을하는 회사의 서버의 일정공간을 빌리는 개념인데, 우리가 작성한 .php파일의 실제소스가 작동하는 물리적인 위치는 서버-PC의 내부이기 때문에 localhost로 쓰는것같다.. )

 

사실 개인적으로 생각해본것같은데 localhost로 해서 연결하면 작동하는것을 확인 할 수 있으므로 필자가 생각하는 개념이 맞다고 생각한다..

 

혹시나 정확하게 알고 계신 독자분이 있다면 추가 내용을 댓글로 써주시면 감사하겠습니다~

 

작성된 파일은 .php 의 확장자로 저장을 하도록 한다.

 

위처럼 작성한 파일을 저장 후 ftp를 이용하여 htdocs 폴더안에 php를 복사하여 넣어준다.

(htdocs  폴더는 웹사이트의 경로가 저장되어있는 물리적인 경로라고 생각하시면 된다.)

 

 

 

 

현재 위처럼 dbTest.php 파일이 ftp를 통해 올려진것을 확인할수 있다.

 

 

여기에서  데이터베이스 연결에 성공하면 "DB연결 성공" 이라는 문구를 보일것이고 실패하면 "DB연결 실패"라는 문구를 반환할 것이다.

 

결과 확인을 해보도록 하자

 

 

위의 그림처럼 DB연결 성공이라는 문구를 확인할 수 있다.

 

 

이 댓글을 비밀 댓글로