powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / vb.net (помогите ошибку найти)
7 сообщений из 7, страница 1 из 1
vb.net (помогите ошибку найти)
    #38838131
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На web странице получаю данные
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

        Dim data As DataManager = New DataManager(loggedInUserId)

        Dim projects = data.MaterialRequest.GetProjects()

        Me.LabelMyProjects.Text = "You have access to following projects:"

        For idx As Int16 = 0 To projects.Count() - 1
            Me.LabelMyProjects.Text += [String].Format("{0}{1} ({2})", If(idx = 0, "", ", "), projects(idx).Name, projects(idx).Id)
        Next
    End Sub



Класс
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
Public Class MrDataManager
#Region "Models"

    Private Interface IBaseObject(Of Out T)
        Property Id() As Integer
        Property Name() As String
        Function GetMany() As IEnumerable(Of T)
        Function GetMany(ids As Integer()) As IEnumerable(Of T)
    End Interface

    Public Class BaseEntity

        Private _mId As Integer
        Public Property Id() As Integer
            Get
                Return _mId
            End Get
            Set(value As Integer)
                _mId = value
            End Set
        End Property

        Private _mName As String
        Public Property Name() As String
            Get
                Return _mName
            End Get
            Set(value As String)
                _mName = value
            End Set
        End Property

        Public Sub New(id As Integer, name As String)
            _mId = id
            _mName = name
        End Sub

    End Class

    Public Class Project
        Inherits BaseEntity
        Public Sub New(id As Integer, name As String)
            MyBase.New(id, name)
        End Sub
    End Class

#End Region

#Region "Data Access"

    Public MustInherit Class BaseServices
        Public CurrentUserId As Integer

        Protected Sub New(currentUserId As Integer)
            currentUserId = currentUserId
        End Sub
    End Class

    Public Class DataManager
        Private ReadOnly _currentUserId As Integer

        Public Sub New(currentUserId As Integer)
            _currentUserId = currentUserId 'сюда попадаю из Dim data As DataManager = New DataManager(loggedInUserId), loggedInUserId правильный
        End Sub

        Private _materialRequestServices As MaterialRequestServices
        Public ReadOnly Property MaterialRequest() As MaterialRequestServices
            Get
                Return If(_materialRequestServices, (InlineAssignHelper(_materialRequestServices, New MaterialRequestServices(_currentUserId))))
            End Get
        End Property
        Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T
            target = value
            Return value
        End Function
    End Class

    Public Class MaterialRequestServices
        Inherits BaseServices
        Public Sub New(currentUserId As Integer)
            MyBase.New(currentUserId)
        End Sub

#Region "Lookups"
        Public Function GetProjects() As List(Of Project) 'cюда попадаю сразу из Dim projects = data.MaterialRequest.GetProjects() и CurrentUserId всегда равен 0
            Dim list As List(Of Project) = New List(Of Project)()
            Using conn As New SqlConnection(WebConfigurationManager.ConnectionStrings("MasterCS").ConnectionString)
                Using cmd As New SqlCommand("RL_getProjectsForUser")
                    cmd.CommandType = CommandType.StoredProcedure
                    cmd.Parameters.Add(New SqlParameter("@fk_user_id", CurrentUserId))
                    conn.Open()
                    cmd.Connection = conn
                    Using dreader As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
                        While dreader.Read()
                            list.Add(New Project(dreader("pk_project_id"), dreader("project_name")))
                        End While
                        dreader.Close()
                    End Using
                End Using
            End Using
            Return list
        End Function

#End Region
    End Class

#End Region
End Class



To есть кабы конструктор есть, родительский класс есть, наследование есть, а в самом DataManager CurrentUserId где-то теряется... Где ошибка?
В коде, не в ДНК :)
...
Рейтинг: 0 / 0
vb.net (помогите ошибку найти)
    #38838201
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful Calf, таки в ДНК?

Код: vbnet
1.
2.
3.
4.
5.
 Public MustInherit Class BaseServices
        Public CurrentUserId As Integer
        Protected Sub New(currentUserId As Integer)
           Me.CurrentUserId = currentUserId 'Не?
        End Sub
...
Рейтинг: 0 / 0
vb.net (помогите ошибку найти)
    #38838552
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser,

Нет, в IDE - я только что исправил, а он мне опять с маленькой переисправил :)

Спасибо.
...
Рейтинг: 0 / 0
vb.net (помогите ошибку найти)
    #38838563
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, не в IDE, а в том, что VB.NET не чувствительный к регистру.
на что buser и намекнул.
так что в ДНК.
...
Рейтинг: 0 / 0
vb.net (помогите ошибку найти)
    #38838578
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич Александр,

Как, неужели уже и в ДНК дошло?!?!?! А ведь всего-то день за vb.net'ом...

ПС: Пасибо, сразу не дошло, хотя и знал про регистр :)
...
Рейтинг: 0 / 0
vb.net (помогите ошибку найти)
    #38838627
Фотография Дикий Билл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если было бы на шарпе? Смысл делать имена отличающиеся только регистром?
...
Рейтинг: 0 / 0
vb.net (помогите ошибку найти)
    #38839007
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дикий Билл,

почему нет? зачем придумывать 100500 названий, когда можно написать 1 в разных регистрах?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / vb.net (помогите ошибку найти)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]