suroMind

[C#] OleDb 이용한 Access 파일 만들기 본문

IT분야/C#

[C#] OleDb 이용한 Access 파일 만들기

suroMind 2011. 8. 23. 18:58

C#을 처음 이용하면서 DB연결이 필요한데..
찾아보니 mdb 파일을 이용하여 사용하는 것이 있었다. Access 2007버전 부터는 확장자가 accdb로 바뀌었다고 한다.

1. 파일 생성

아래처럼 코딩하게 되면 파일이 생성된다.
변수 this.accFileName 에는 파일 이름 ex) "accdbFile.accdb"
       this.dbPasswd 에는 비밀번호(필요없다면 필드자체를 빼버려도 된다)
try
{
     string newDB = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + this.accFileName + ";" + "Jet OLEDB:Database Password="+this.dbPasswd;
     Type objClassType = Type.GetTypeFromProgID("ADOX.Catalog");
      if (objClassType != null)
      {
              object obj = Activator.CreateInstance(objClassType);

               // Create MDB file
              obj.GetType().InvokeMember("Create", System.Reflection.BindingFlags.InvokeMethod, null, obj,
                                  new object[] { "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + newDB + ";" });
               isCreate = DB_Status.Success;

              // Clean up
              System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
              obj = null;
        }
 }
catch (Exception ex)
{
       MessageBox.Show("Could not create database file: " + this.accFileName + "\n\n" + ex.Message, "Database Creation Error");
}
finally
{
}
2. Table 만들기
OleDbConnection conn = new OleDbConnection();
OleDbCommand connCmd = new OleDbCommand();
try
{
      conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + this.accFileName + ";Mode=ReadWrite;Jet OLEDB:Database Password=" + this.dbPasswd;
      conn.Open();
      connCmd.Connection = conn;

      connCmd.CommandText = "CREATE TABLE treeView(noName text, noName2 text, noName3 text)";
      connCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
      Console.WriteLine(ex.Message);
 }
finally
{
       conn.Close();
}
출처 : http://blog.naver.com/PostView.nhn?blogId=unidenti&logNo=90083354068

'IT분야 > C#' 카테고리의 다른 글

[C#] 절전모드/화면 꺼짐 방지  (0) 2011.10.31
[C#] XML 직렬화하여 사용하기  (0) 2011.10.21
[C#]ComboBox 내용 수정 막기  (0) 2011.10.05
[C#]C#에서 OpenCV 사용하기  (0) 2011.09.26
[C#] OleDb를 이용한 accdb 파일 연결  (2) 2011.08.23
Comments