2012-09-05 2 views
4

데이터에 대한 하나의 테이블이 필요한 데이터베이스에 대한 ODBC 연결이 있습니다. 이 테이블에는 약 20 개의 행과 몇 천 개의 데이터 행이 있습니다.ODBC 테이블 검색 및 SQL Server CE 데이터베이스에 삽입

이 테이블을 로컬 SQL Server CE 데이터베이스에 삽입합니다.이 테이블을 추가로 사용할 수 있습니다. 두 연결은 테스트를 거쳐 작동합니다.

내 시도는 단순하게 (C#, 프로그래밍 및 stackoverflow를 처음 사용하는) 단순한 열을 삽입하는 것이 었습니다.

OdbcConnection c = new OdbcConnection(ConnectionString1); 
SqlCeConnection d = new SqlCeConnection(ConnectionString2); 

c.Open(); 
d.Open(); 

string sqlC = "SELECT * FROM ODBCTABLE WHERE ODBCCOLUMN='12345'"; 
OdbcCommand commandC = new OdbcCommand(sqlC, c); 

string sqlD = "INSERT INTO SQLCETABLE(SQLCECOLUMN) VALUES (@sql)"; 
SqlCeCommand commandD = new SqlCeCommand(sqlD, d); 

OdbcDataReader reader = commandC.ExecuteReader(); 

while (reader.Read()) 
{ 
    string x = reader[0].ToString();     
    commandD.Parameters.Add("@sql",SqlDbType.NVarChar, 5).Value = x; 
    commandD.ExecuteNonQuery();  
} 

c.Close(); 
c.Dispose(); 

d.Close(); 
d.Dispose(); 

나는 오류 이 이름을 가진 SqlCeParameter가 이미이 SqlCeParameterCollection에 포함되어 얻을.

  1. 왜 잘못 되었나요?
  2. 해결 방법이 있습니까?
  3. 전송하는 더 좋은 방법이 있습니까? (나는 sqlbulktransfer가 ODBC에 존재하지 않는다고 믿는다.)
  4. Stackoverflow에 대한 첫 번째 게시물이되었는데, 질문을 올바르게 게시 했습니까? 모든 루프, 위의 오류가 발생합니다 컬렉션에 같은 이름의 매개 변수의 추가를 반복하기 때문에

답변

0

변경 코드

commandD.Parameters.Add("@sql",SqlDbType.NVarChar, 5); 
while (reader.Read()) 
{ 
    string x = reader[0].ToString();     
    commandD.Parameters["@sql"].Value = x ; 
    commandD.ExecuteNonQuery();  
} 

문제의이 부분이 발생한다.
루프 외부에서 매개 변수를 생성하고 루프 내의 값만 업데이트하면 오류가 해결됩니다.

예, 질문을 올바르게 게시 한 것 같습니다.

관련 문제