원문: http://aspalliance.com/articleViewer.aspx?aId=477&pId=-1
저자 : Andrew Mooney 번역 : Mencius Chapter E [소스 코드 다운로드
// 테이블이 존재하는지 확인합니다. 존재하는 경우 DataTable에 레코드가 있습니다.
if(schemaTable.Rows.Count < 1)
sqlCmd = "테이블 만들기 " + tableName + " (";
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
//열 텍스트/문자열 유형 길이 100 추가
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + " char(100),";
}
sqlCmd = sqlCmd .Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();
데이터베이스에 XML 데이터 추가
// DataTable의 행 탐색
foreach(dataTableXml.Rows의 DataRow dr)
{
string sqlCmd = "[" + tableName + "]에 삽입(";
// Datatable의 열을 탐색합니다.
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
//컬럼 이름 추가
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + ",";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ") 값 (";
// DataTable 열 탐색
for(int x = 0;x < dataTableXml.Columns.Count;x++)
{
//행에 열 값 추가
sqlCmd = sqlCmd + "'" + dr[x].ToString().Replace("'","''") + "',";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();
}
참고할 문제:
테스트할 때 먼저 소스 코드를 다운로드하고, 빈 데이터베이스를 만들고, 수정 가능한 권한 Database.mdb, Database.xls를 설정하고,
FoxPro/dBase에 대한 빈 디렉터리 연결 문자열 예제를 만듭니다.
액세스: 공급자=Microsoft.Jet.OLEDB.4.0;데이터 원본=C:datadatabase.mdb;
Excel: 공급자=Microsoft.Jet.OLEDB.4.0;데이터 원본=C:datadatabase.xls;확장 속성=Excel 8.0;
FoxPro/dBase: 공급자=Microsoft.Jet.OLEDB.4.0;데이터 원본=c:data;확장 속성=dBASE IV;
SQL Server: 공급자=SQLOLEDB; 데이터 원본=localhost; 초기 카탈로그=데이터베이스;사용자 ID=sa;비밀번호=;