Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / vb.net (помогите ошибку найти) / 7 сообщений из 7, страница 1 из 1
19.12.2014, 14:25
    #38838131
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vb.net (помогите ошибку найти)
На 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
19.12.2014, 15:13
    #38838201
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vb.net (помогите ошибку найти)
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
20.12.2014, 00:12
    #38838552
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vb.net (помогите ошибку найти)
buser,

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

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

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

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

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


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