希望这里的.NET开发人员可以启发我。
实际上我已经在.NET环境中编写了一些页面,而我正在使用VB.NET作为我的后端。
Phewww ....!
我有两个A.ascx和B.ascx文件,每个文件都有A.ascx.vb和B.ascx.vb文件。
但这是有趣的部分。我在其中一个输入的方法中使用'isEqual'变量。如果我在其中一个vb文件中使用它,那么我就无法将它用于另一个vb文件。因此,一旦我在这两个vb(文件)中使用'isEqual',我将从其中一个vb文件中出现错误;
'isEqual'未声明。由于其保护级别,它可能无法访问。
这有什么替代方法吗?
我的代码实际上是这个;
Protected Sub bindTable()
'add somemore for searching with dropdown list
Dim sSql As String = "SELECT *, C.companyname FROM quotationmst Q"
Dim sColumn As String = Nothing
Dim sSearchField As String = Nothing
Dim sOptional As String = Nothing
If txtQuotationSearchField.Text.Length > 0 Then
sColumn = drpQuotationSearchField.SelectedItem.Value
sSearchField = " WHERE " & sColumn & " LIKE '%" & txtQuotationSearchField.Text & "%' "
sSql &= sSearchField
If isEqual(sColumn, "companyname") = 0 Or isEqual(sColumn, "customername") = 0 Then
sSearchField = " INNER JOIN customermst C on Q.customerid = C.customerid WHERE C." & sColumn & " LIKE '%" & txtQuotationSearchField.Text & "%'"
sSql &= sSearchField
End If
Else
sSearchField = " INNER JOIN customermst C ON Q.customerid = C.customerid"
sSql &= sSearchField
End If
Dim oCommon As New Common
sSql &= " ORDER BY quotationcode"
Dim dT As DataTable = oCommon.getDataSet(sSql)
dgRecord.DataSource = dT
dgRecord.DataBind()
lblTotal.Text = dT.Rows.Count
End Sub
做就是了
If sColumn.Equals("companyname") Or sColumn.Equals("customername") Then
我认为这里发生的是:
在Visual Studio(vb.net)中创建文件并使用设计器添加控件时,它会创建一个名为“filename.aspx.designer.vb”的文件。您可能已使用设计器创建了第一页,并将其复制到创建第二页,在该过程中丢失了设计文件。
这会给你上面的错误,因为设计文件中有自动生成的字段声明,如下所示:
受保护的事件rptPackages为Global.System.Web.UI.WebControls.Repeater
在任何情况下,尝试使用上述decarration为您的vars,或至少使它们“受保护”或“公共”,以便它们有某种范围。使用dim会导致由于类型感染而难以诊断的各种运行时和编译错误。