2013-09-03 2 views
1

이것은 비교적 간단한 질문이지만 몇 시간이 지난 후에도 대답을 찾을 수 없었고 멋진 데이터베이스 세계에 여전히 새로운 점이 있습니다.Webmatrix 데이터베이스에 여러 행 넣기

나는 Webmatrix를 사용하기 시작했으며, 13 개의 열과 200 개가 넘는 행을 가진 데이터베이스를 가져 오기 위해 노력하고 있습니다. (단지 충분히 입력하지 않으려 고합니다.)

내 모든 작품은 오프라인 상태이며 몇 개월 이상 온라인 상태로 유지되지 않습니다. 지금까지 나는 Mac (php, mysql, 등등)에서 일했으며 Webmatrix를 시도하기 위해 PC로 전환했다. Webmatrix에서 데이터베이스를 가져올 수있는 간단한 기능을 찾지 못했기 때문에 Mac에서 phpMyAdmin의 SQL 파일을 내보내고 cshtml 페이지 (코딩 면도기)를 통해 SQL 파일을 한 번 실행하는 것이 가장 쉬운 방법이라고 생각했습니다.

약간의 조정으로이 방법으로 테이블을 다시 만들었고 개별 행에 값을 삽입 할 수 있지만 한 번에 둘 이상의 행을 삽입 할 수없는 것처럼 보입니다.

내 의도 된 코드는 기본적으로 :

var db = Database.Open("Database"); 
var insertQuery = "INSERT INTO table (field1, field2, field3) VALUES ('val1', 'val2', 'val3'),('val4','val5','val6'),(etc)"; 
db.Execute(insertQuery); 

사람이 여기에 잘못 갈 수있는 무엇에 도움이 되거 수 있을까요? 데이터베이스를 가져 오는 다른 방법도 살펴 보았습니다. MySQL 벤치 마크에 관해 읽었지 만, 저의 생각은 조금 이상합니다.

미리 감사드립니다.

답변

0

옵션은 사용중인 데이터베이스 유형에 따라 다릅니다. 기본 WebMatrix 데이터베이스 (SQL Compact Edition 4.0)를 사용하는 경우 PHP 데이터를 csv 파일에 저장 한 다음 WebMatrix에서 File.ReadAllLines을 사용하여 읽을 수 있습니다. 그러면 각 행에 데이터 행을 나타내는 쉼표로 구분 된 값이 들어있는 문자열 배열이 생깁니다. 당신은 foreach 루프 내에서 그 개별 값의 배열을 만들 사항 String.split를 사용하여 삽입 할 수 있습니다 : SQL Server를 사용하는 경우, 당신은 파일에 대한 대량 삽입을 사용할 수 있습니다

var rows = File.ReadAllLines(path_to_csv_file); 
foreach(var row in rows){ 
    var vals = row.Split(new[]{','}); 
    var sql = "INSERT INTO table(f1, f2, f3) VALUES (@0, @1, @2)"; 
    db.Execute(sql, data[0], data[1], data[2]); 
} 

. 또한 SQL CE에 대한 몇 가지 다른 접근 방법이 있습니다. Bulk Insert In SQL Server CE

+0

빠르고 유용한 답변 인 Mike에게 감사드립니다. 모든 작업을 수행하기 위해 더 많은 연구를해야했지만 솔루션으로 모든 것이 하나로 이루어졌습니다. – chuls