2009-09-23 4 views
0

아래 코드를 사용하여 DataGrid의 SQL 테이블에 데이터를 삽입하고 DataGrid에는 5 개의 행이 있지만 4 개만 테이블에 삽입됩니다. 행을 놓친 것입니다. 나는 문제를 아래의 updateTable로 좁혔다. 문제를 발견 할 수 있습니까? 1 시간의 노력 후에 나는 할 수 없다.C# SQL 테이블에 삽입하면 데이터 테이블의 첫 번째 행이 누락됩니다.

private void updateTable(OdbcConnection conn) 
{ 
       int iCols = _DGV.ColumnCount; 
       int iRows = _DGV.RowCount; 
       int iIndex = 1; 

       string strSql = GetInsertStatement(iCols); 

       foreach(DataGridViewRow dr in _DGV.Rows) 
       { 
        if (!dr.Visible) 
        { 
         continue; 
        } 

        iIndex++; 

        OdbcCommand cmd = new OdbcCommand(); 
        for (int j = 0; j <= iCols - 1; j++) 
        { 
         if (_DGV.Columns[j].Visible == false) 
         { 
          continue; 
         } 
        try 
        { 
         conn.Open(); 
         cmd.Connection = conn; 
         cmd.CommandText = strSql; 
         cmd.ExecuteNonQuery(); 
        } 
        catch (Exception ex) 
        { 

        } 
        finally 
        { 
         conn.Close(); 
        } 
       } 
} 

답변

0

미정 :

int iIndex = 0; 
+0

iIndex에 그것을 변경하려고합니다. – Jonas

+0

나는 운이 없다고 시도했다. 코드는 내 것이 아니고 현재 병이 들지 않는 동료에게 속한다. –

+0

@Jonas, 네 말이 맞아. 얼마나 이상합니다. @ 제이드 남, 왜 그가 확인하고 있습니다. 항상 읽을 수 있습니까? 나는 보이지 않는 다른 코드가 뭔가를 숨기고 있다고 생각하고있다. – lod3n

1

당신은 그리드의 각 행이 표시되는지 확실합니까? IE, 당신의 루프의 끝에 (서면으로), iIndex == iRows합니까? 내가 여기 생각

0
for (int j = 0; j <= iCols - 1; j++) 
{ 
    if (_DGV.Columns[j].Visible == false) 
    { 
    continue; 
    } 
} 

j <= iCols - 1; 문제가, 그것은 어디서나 사용할 것처럼 보이지 않는 <= iCols

+0

질문자에게 왜 이것이 자신의 문제를 해결하는지 설명해 주시겠습니까? [대답] – jkalden

+0

보기이 문제가 이미 해결되었음을 확신합니다 : D이 질문에 대한 질문을 받았을 때 통지하지 않습니다. – Noah

관련 문제