PDA

View Full Version : برنامه نویسی چند لایه



sinaexample
پنج شنبه 06 تیر 1392, 15:29 عصر
با سلام دوستان ببخشید اگه این تایپیک قبلا موجود بود و من دوباره درستش کردم .
راستش خیلی به هم ریخته بودن و من چیزی نفهمیدم.
سوالی داشتم لطفن اگه میدونید کمکم کنید ممنون میشم.
من یه برنامه بسیار ساده برای ثبت یه سری اطلاعات مثل نام و فامیل و اینجور چیزهارو به صورت سه لایه ای نوشتم ولی هرکاری کردم برنامه درست کار نکرد و اطلاعات رو داخل جدول مربوطه درج نکرد. کدهام رو میزارم اگه کسی میدونه لطفا کمک کنه.
لایه business Entity
کلاس EntMember

Public Class EntMember
Property m_code As Integer
Property m_lname As String
Property m_fname As String
Property m_sh As Integer
Property m_father As String
Property m_tell As String
End Class


لایه DAL
کلاس
MembarDAL


Imports Business_Entity
Public Class MemberDAL
Dim memberTA As New DataSet1TableAdapters.MemberTableAdapter
Dim memberDT As New DataSet1.MemberDataTable
Dim DS As New DataSet1
Dim Member As New EntMember
Sub New(ByVal pconstr As String)
memberTA.Connection.ConnectionString = pconstr
End Sub
Function Get_member() As DataSet1.MemberDataTable
memberTA.ClearBeforeFill = True
Return memberTA.GetData
End Function
Function fill_Dataset_Member() As DataSet1
memberTA.Fill(DS.Member)
Return DS
End Function
Sub insert_member(ByVal pmember As EntMember)
memberTA.InsertNewMember(pmember.m_code, pmember.m_fname, pmember.m_lname, pmember.m_sh, pmember.m_father, pmember.m_tell)
End Sub
End Class




لایه BAL
کلاس
MemberBAL


Imports DAL
Imports Business_Entity
Public Class memberBAL
Dim obj_memberDAL As MemberDAL
Dim member As EntMember
Sub New(ByVal pconstr As String)
obj_memberDAL = New MemberDAL(pconstr)
End Sub
Sub insert(ByVal pmember As EntMember)
obj_memberDAL.insert_member(pmember)
End Sub
Function fill()
Dim queryfill = From member In obj_memberDAL.Get_member() Select New With {member.m_code, member.m_fname, member.m_lname, member.m_sh, member.m_father, member.m_tell}
Return queryfill.ToList
End Function
Function filldatatable() As DataSet1.MemberDataTable
Return obj_memberDAL.Get_member
End Function
Function fillDataSet() As DataSet1
Return obj_memberDAL.fill_Dataset_Member
End Function
End Class


وآخری لایه Presentation
کلاس فرم

Imports System.IO
Imports BAL
Imports Business_Entity
Class FrmMember
Dim obj_member As memberBAL
Dim pmember As New EntMember
Sub clearAll()
txtcode.Clear()
txtfname.Clear()
txtlname.Clear()
txtsh.Clear()
txtfather.Clear()
txttell.Clear()
End Sub



Private Sub Btn_insert_Click(sender As Object, e As EventArgs) Handles Btn_insert.Click
pmember.m_code = txtcode.Text
pmember.m_fname = txtfname.Text
pmember.m_lname = txtlname.Text
pmember.m_sh = txtsh.Text
pmember.m_father = txtfather.Text
pmember.m_tell = txttell.Text
obj_member.insert(pmember)

End Sub
End Class


بعد از اجرا خط
obj_member.insert(pmember)


رو ایراد میگیره.
خواهش میکنم اگه کسی میدونه مشکل کار کجاست راهنماییم کنه.:افسرده::افسرده::افسرده:: افسرده:

sinaexample
پنج شنبه 06 تیر 1392, 16:46 عصر
دوستان اگه کسی میدونه مشکل کارم کجاست یه کمکی برسونه.
در ضمن refrence های همه لایه ها هم درست هستش.

parvizwpf
پنج شنبه 06 تیر 1392, 16:48 عصر
چه ایرادی میگیره ؟ خطا چیه؟

sinaexample
پنج شنبه 06 تیر 1392, 21:18 عصر
این اخطار رو میده:
Object reference not set to an instance of an object.

vb341
پنج شنبه 06 تیر 1392, 21:36 عصر
کتاب اموزش وی بی دات نت 2010 انتشارات ناقوس . یک مثال کامل در مورد برنامه نویس سه لایه داره

sinaexample
جمعه 07 تیر 1392, 01:52 صبح
خوب من اون کتاب رو ندارم . اگه میشه همینجا بگید مشکلش کجاست؟

sinaexample
جمعه 07 تیر 1392, 15:20 عصر
دوستان عزیز و گرامی من هنوز مشکلم حل نشده لطفا اگر کسی میدونه مشکل کارم کجاست گره از کار من بگشاید.:لبخند:

sinaexample
جمعه 07 تیر 1392, 23:13 عصر
مثل اینکه کسی نمیدونه..

sinaexample
پنج شنبه 13 تیر 1392, 02:21 صبح
دوستان ببخشید اگه کسی pdf یا سایتی یا هر چیزی که راجب برنامه نویسی چندلایه کامل توضیح داده باشه ممنون میشم واسم بزاره.
اگر کسی سورس یه برنامه چند لایه هم داره ممنون میشم آدرسشو بهم بده
مرسی

Mani_rf
پنج شنبه 13 تیر 1392, 12:10 عصر
لایه آخر رو اینطوری بنویس ببین حل میشه :

Imports System.IO
Imports BAL
Imports Business_Entity
Class FrmMember

Sub clearAll()
txtcode.Clear()
txtfname.Clear()
txtlname.Clear()
txtsh.Clear()
txtfather.Clear()
txttell.Clear()
End Sub

Private Sub Btn_insert_Click(sender As Object, e As EventArgs) Handles Btn_insert.Click
Dim pmember As New EntMember

pmember.m_code = txtcode.Text
pmember.m_fname = txtfname.Text
pmember.m_lname = txtlname.Text
pmember.m_sh = txtsh.Text
pmember.m_father = txtfather.Text
pmember.m_tell = txttell.Text

Dim obj_member As New memberBAL
obj_member.insert(pmember)

End Sub
End Class

sinaexample
پنج شنبه 13 تیر 1392, 13:58 عصر
حالا زیر obj_member تو همین لایه آخر خط میکشه و این ارور رو میده:
Argument not specified for parameter 'pconstr' of 'Public Sub New(pconstr As String)'

sinaexample
پنج شنبه 13 تیر 1392, 14:15 عصر
حل شد مرسی.
البته لایه آخر رو به این صورت تغییر دادم:
یه متغییر تو تنظیمات برنامه تعریف کردم به نام conasli که همون رشته اتصاله.





Imports System.IO
Imports BAL
Imports Business_Entity
Class FrmMember
Private Sub FrmMember_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub
Sub clearAll()
txtcode.Clear()
txtfname.Clear()
txtlname.Clear()
txtsh.Clear()
txtfather.Clear()
txttell.Clear()
End Sub

Private Sub Btn_insert_Click(sender As Object, e As EventArgs) Handles Btn_insert.Click
Dim pmember As New EntMember

pmember.m_code = txtcode.Text
pmember.m_fname = txtfname.Text
pmember.m_lname = txtlname.Text
pmember.m_sh = txtsh.Text
pmember.m_father = txtfather.Text
pmember.m_tell = txttell.Text

Dim obj_member = New memberBAL(My.Settings("conasli"))
obj_member.insert(pmember)

End Sub


End Class