2014-10-21 3 views
0

내 데이터 그릿의 각 행에서 열을 가져 와서 SQL 데이터베이스에 입력하려고합니다. 모든 종류의 문제/오류가 발생하게합니다.SQL 데이터베이스에 각 데이터 행 입력

For i = 0 to agentGridView.Rows.Count - 1 
    varAgt = agentGridView.Rows(i).Cells(1).Text 

    strSQL = "INSERT INTO tblAgentVisitAgents (VisitID, AgtID)" & _ 
     " Values (" & _ 
     VisitID.Text & "," & _ 
     varAgt & ")" 
    strSQL = Utils.replaceChars(strSQL) 
    DAL.ExecNonQuery(strSQL, CommandType.Text) 
Next 

편집 :

이 최신 버전입니다 문제는 내 세포 (1) 숨겨진 필드 것입니다. 내가 보게되면 엔트리 폼이 작동합니다. 숨겨져있을 때 아무 것도 입력하지 않아 구문 오류가 발생합니다. 엔트리 목적으로 숨겨진 필드를 사용할 수있는 방법이 있습니까?

답변

0

내가 갔다 내용은 다음과 같습니다

전면 :

<asp:GridView ID="agentGridView" DataKeyNames="agentName,agentValue" ... /> 

돌아 가기 :

For i = 0 to agentGridView.Rows.Count - 1 
    varAgt = agentGridView.DataKeys(i).Values("agentValue").ToString 

    strSQL = "INSERT INTO tblAgentVisitAgents (VisitID, AgtID)" & _ 
     " Values (" & _ 
     VisitID.Text & "," & _ 
     varAgt & ")" 
    strSQL = Utils.replaceChars(strSQL) 
    DAL.ExecNonQuery(strSQL, CommandType.Text) 
Next 

소스 (C 번호) : Hide BoundField's but still be able to get values with C#

1

Value 대신 Text을 사용해야합니다. 다음과 같이.

대신 varAgt = agentGridView.Rows(i).Cells(1).Value

varAgt = agentGridView.Rows(i).Cells(1).Text 그러나 당신이 Label에 해당 컨트롤이있는 경우에, 당신은 레이블 다음 텍스트를 사용하는 타입 변환해야합니다. 예 :

varAgt = CType(agentGridView.Rows(i).Cells(1).FindControl("controlID"),Label).Text - controllID을 필수 라벨 ID로 바꿉니다.

소스 - http://www.aspsnippets.com/Articles/How-to-get-Selected-Row-cell-value-from-GridView-in-ASPNet.aspx 여기

+0

이것은 효과가있었습니다. 그러나 문제는 이제 내 셀 (1)이 내가 사용하려는 숨겨진 필드라는 것입니다. 그것을 보여주는 것은 효과가 있습니다. 그것을 숨기면 구문 오류가 발생합니다. – niclake

+0

업데이트 된 질문을 확인했습니다. 회신 = 숨김으로 설정하면'visible = false', HTML에 추가 된 요소가 없으므로'cells (1)', my 제안은 'display : none' 속성을 설정하여 숨길 수있게하는 것입니다. 그러면 코드 만 사용하면됩니다. \ –

+1

내 자신의 답변을 추가했지만 내 도움이 필요했습니다. 고맙습니다. – niclake