2012-01-10 55 views
0

首先,我有一个grdData在我的主页。选择我想和数据后去使用值不能被转换为“system.collections.arraylist”

Request.QueryString("id") 

在该页的另一页我想​​使用

Request.QueryString("id") 

再拍grdData但

Value of type 'cfeedback' cannot be converted to 'system.collections.arraylist' 
在一个错误来了

以下是我的代码

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim objArrayList As New ArrayList 
    Dim objCDBFeedback As New CDBFeedback 
    Dim intGuestID2 As Integer 
    intGuestID2 = Request.QueryString("id") 
    objArrayList = objCDBFeedback.getFeedBack(intGuestID2) 
    grdResult.DataSource = objArrayList 


    grdResult.DataBind() 

    grdResult.HeaderRow.BackColor = Drawing.Color.AliceBlue 
    grdResult.RowStyle.BackColor = Drawing.Color.BlanchedAlmond 
    grdResult.AlternatingRowStyle.BackColor = Drawing.Color.LightSalmon 

    grdResult.Columns(0).Visible = True 


End Sub 

我的功能

Public Function getFeedBack(ByVal pintGuestID1 As Integer) As CFeedback 
    Dim objCmd As New MySqlCommand 
    Dim objCn As New MySqlConnection(connectionString) 
    Dim objAdapter As New MySqlDataAdapter 
    Dim strSQL As String = "" 
    Dim objDs As New DataSet 
    Dim objDataRow As DataRow 

    strSQL = "SELECT * FROM tblFeedback WHERE strGuestCodeFB=" & pintGuestID1 
    objCmd.CommandText = strSQL 
    objCmd.Connection = objCn 
    objAdapter.SelectCommand = objCmd 

    objCn.Open() 

    objAdapter.Fill(objDs, "tblFeedback") 
    objDataRow = objDs.Tables("tblFeedback").Rows(0) 
    Dim objCFeedback As New CFeedback 


    objCFeedback.Feedback = objDataRow.Item("strGuestCompanyTI") 

    objCn.Close() 
    Return objCFeedback 
End Function 

我的班级

Public Class CFeedback 
Private strGuestCodeFB As Integer 
Private strFeedBackFB As String 

Public Property GuestId() As String 
    Get 
     Return strGuestCodeFB 
    End Get 
    Set(ByVal value As String) 
     strGuestCodeFB = value 
    End Set 
End Property 

Public Property Feedback() As String 
    Get 
     Return strFeedBackFB 
    End Get 
    Set(ByVal value As String) 
     strFeedBackFB = value 
    End Set 
End Property 

End Class 

那么,是否有可能在一个查询字符串一个grdData基地?

回答

1

,你需要做的第一件事情是背后编辑代码,并在顶部添加以下两行:

Option Explicit On 
Option Strict On 

这将显示您至少有一个错误:分配类型CFeedback来一种ArrayList。

您需要确定哪些合适的分辨率,这是,但我怀疑你想返回从GetFeedback一个ArrayList或者泛型列表而不仅仅是一个项目。

,因此,其他的变化中,你会想改变页面加载看起来是这样的:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim objCDBFeedback As New CDBFeedback 
    Dim intGuestID2 As Integer 
    intGuestID2 = CInt(Request.QueryString("id")) 

    Dim cValues As System.Collections.Generic.List(Of CFeedback) 

    cValues = objCDBFeedback.getFeedBack(intGuestID2) 

    grdResult.DataSource = cValues 
    grdResult.DataBind() 

    grdResult.HeaderRow.BackColor = Drawing.Color.AliceBlue 
    grdResult.RowStyle.BackColor = Drawing.Color.BlanchedAlmond 
    grdResult.AlternatingRowStyle.BackColor = Drawing.Color.LightSalmon 

    grdResult.Columns(0).Visible = True 

    grdResult.Visible = cValues.Count <> 0 
End Sub 

而且getFeeback方法看起来是这样的:

Public Function getFeedBack(ByVal pintGuestID1 As Integer) As System.Collections.Generic.List(Of CFeedback) 
     Dim cValues As New System.Collections.Generic.List(Of CFeedback) 

     Using objCn As New MySqlConnection(connectionString) 
      Using objCmd As New MySqlCommand 
       Dim strSQL As String = "" 

       strSQL = "SELECT * FROM tblFeedback WHERE strGuestCodeFB=" & pintGuestID1 
       objCmd.CommandText = strSQL 
       objCmd.Connection = objCn 

       objCn.Open() 

       Using oReader As MySqlDataReader = objCmd.ExecuteReader 
        Do While oReader.Read 
         Dim objCFeedback As New CFeedback 

         objCFeedback.Feedback = oReader.Item("strGuestCompanyTI") 

         cValues.Add(objCFeedback) 
        Loop 
       End Using 

       objCn.Close() 
      End Using 
     End Using 

     Return cValues 
    End Function 
+0

嗨competent_tech,我该放什么在CValues中? – waterbottle 2012-01-10 09:53:35

+0

competent_tech ..在反馈数据库中,我想为grdData显示多个反馈。我如何获得与“RequestQuerystring”具有相同strGuestCodeFB的所有反馈。 因为现在它只显示一个反馈,当我有3个相同的strGuestCodeFB。 – waterbottle 2012-01-10 10:11:27

+0

还如何设置,它不会显示grdData如果没有在功能getFeedback找到的记录? – waterbottle 2012-01-10 10:25:45

相关问题