2012-10-12 3 views
1

데이터베이스에 연결 한 다음 SQLDataReader를 사용하여 해당 결과를 구문 분석 한 다음 그 결과를 나중에 사용할 수있는 변수에 넣습니다. 문제는 모든 "results.items"가 null 값을 반환한다는 것입니다. 그러나 DataReader는 디버깅 할 때 적절한 필드 수를 표시합니다.(ASP.NET) Null 값을 반환하는 SQL 데이터 판독기

Private Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand 

    If e.CommandName = "editPost" Then 
     'Remove DataGrid''''''''' 
     GridView1.Visible = False 
     ''''''''''''''''''''''''' 
     Dim index As Integer = Convert.ToInt32(e.CommandArgument) 
     Dim row As GridViewRow = GridView1.Rows(index) 
     Dim ID As String = GridView1.Rows(index).Cells(0).Text 
     ''''''''''''''''''''''''''''''''''''''''CREATE Controls for Placeholder 
     Dim editEditor As New CuteEditor.Editor 
     Dim hiddenID As New HiddenField 
     hiddenID.ID = "hiddenID" 
     hiddenID.Value = ID 
     editEditor.ID = "editEditor" 
     Dim subjectTXT As New TextBox 
     subjectTXT.ID = "editorSubject" 
     Dim br As New Literal 
     Dim submitChanges As New Button 
     Dim sbjLabel As New Label 
     submitChanges.ID = "submitChanges" 
     submitChanges.Text = " Submit Changes " 
     submitChanges.Height = 40 
     submitChanges.Width = 300 

     sbjLabel.Text = "Subject: " 

     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     editEditor.AutoConfigure = CuteEditor.AutoConfigure.Simple 
     br.Text = "<br/><br/>" 
     plcEditor.Controls.Add(hiddenID) 
     plcEditor.Controls.Add(sbjLabel) 
     plcEditor.Controls.Add(subjectTXT) 
     subjectTXT.Width = "100" 
     subjectTXT.Height = "25" 
     subjectTXT.CssClass = "editInput" 
     plcEditor.Controls.Add(br) 
     plcEditor.Controls.Add(editEditor) 
     plcEditor.Controls.Add(br) 
     plcEditor.Controls.Add(br) 
     plcEditor.Controls.Add(submitChanges) 
     submitChanges.OnClientClick = UpdatePost() 
     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     Dim connStr As String = ConfigurationManager.ConnectionStrings("oakfratnewsConnectionString").ConnectionString 
     Dim nCon As New SqlConnection(connStr) 
     Dim addCon As New SqlConnection(connStr) 
     Dim addCom As New SqlCommand("SELECT * FROM [News] WHERE ([ID] = @ID)", addCon) 
     addCom.Parameters.AddWithValue("@ID", ID) 
     addCon.Open() 
     addCom.ExecuteNonQuery() 
     Dim results As SqlDataReader 
     results = addCom.ExecuteReader 
     While results.Read() 
      Dim editText As String = results.Item("Content") 
      Dim Subject As String = results.Item("Subject") 
      editEditor.Text = editText 
      subjectTXT.Text = Subject 


     End While 



    End If 
End Sub 
+0

제거'addCom.ExecuteNonQuery()' –

+0

동일한 결과를 루프하기 전에 변수를 정의하고이 방법으로 그것을 읽을

.... – user1698144

+0

당신을 수행 데이터베이스의 필드에 null 데이터가 있습니까? –

답변

0

어디서 ID 값을 얻습니까? "addCom.Parameters.AddWithValue ("@ 아이디 ", ID)"

제거 "addCom.ExecuteNonQuery()"

문자열 = 결과로

희미한 EDITTEXT를 사용하는 이유는. 항목 ("콘텐츠") 나는

Dim editText As String 
    While results.Read() 
     editText = results("Content") ' without .items 
    ... 
End While 
관련 문제