Ошибка ASP.NET: ошибка 1 «isEqual» не объявлена. Может быть недоступен из-за уровня защиты - PullRequest
1 голос
/ 02 июня 2011

Надеюсь, что здесь есть разработчики .NET, которые могли бы меня просветить.

На самом деле я уже создал несколько страниц в среде .NET, и я использую VB.NET в качестве моего бэк-энда.

Phewww ....!

У меня есть 2 файла A.ascx и B.ascx, и у каждого из них есть файлы A.ascx.vb и B.ascx.vb.

Но вот интересная часть.Я использую переменную isEqual внутри одного из методов, которые я набрал. И если я использую его внутри одного из файлов vb, я не смогу использовать его в другом файле vb.Таким образом, как только я использовал это 'isEqual' внутри этих 2 vb (файлов), я получаю сообщение об ошибке, как в одном из файлов 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

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Просто сделай

If sColumn.Equals("companyname") Or sColumn.Equals("customername") Then 
0 голосов
/ 07 июня 2011

Я думаю, что здесь происходит вот что:

Когда вы создаете файл в Visual Studio (vb.net) и добавляете элемент управления с помощью конструктора, он создает файл с именем «filename.aspx.designer.vb». Возможно, вы создали первую страницу с помощью конструктора и скопировали это создать вторую страницу, потеряв файл дизайна в этом процессе.

Это даст вам вышеуказанную ошибку, так как в файле дизайна есть автоматически сгенерированные объявления полей, которые выглядят так:

Защищено с помощью событий rptPackages As Global.System.Web.UI.WebControls.Repeater

В любом случае, попробуйте использовать вышеуказанное объявление для ваших переменных или, по крайней мере, сделайте их "Защищенными" или "Публичными", чтобы у них была какая-то область видимости. Использование dim может вызвать всевозможные ошибки времени выполнения и компиляции, которые трудно диагностировать из-за влияния типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...