PDA

View Full Version : استفاده از generic به جای dataset در برنامه نویسی چند لایه



mohsen_zelzela00
جمعه 30 اسفند 1387, 19:02 عصر
با سلام خدمت اساتید محترم
چگونه میتونم برای تبادل اطلاعات در برنامه نویسی چند لایه بین لایه های مختلف به جای dataset ار genericها استفاده کنم

با تشکر

majid325
جمعه 07 فروردین 1388, 05:13 صبح
خوب به جای اینکه یه dataset برگردونی یه arrylist بر گردون.
یه کمی هم راجع به dataSet Designer تحقیق و در مورد کدهای تولید شده توسط اون , برسی کن .

mohsen_zelzela00
جمعه 07 فروردین 1388, 14:06 عصر
خوب به جای اینکه یه dataset برگردونی یه arrylist بر گردون.

اگه بتونید یه مثال بزنید ممنون میشم


یه کمی هم راجع به dataSet Designer تحقیق و در مورد کدهای تولید شده توسط اون , برسی کن .

اگه منبع یا سایتی داری بهم بدی ممنون میشم

majid325
شنبه 08 فروردین 1388, 02:37 صبح
اگه بتونید یه مثال بزنید ممنون میشم


وقتی میگید مثال , چون معمار چند لایه هست و هر لایه با لایه های دیگه ارتباط داره باید یه پروژه کامل براتون بزارم !!!!!
ولی فعلا کد زیر رو یه نگاه بندازید:

public List<Contractor> getContractor()
{
IDatabase x = new Methods("SELECT x FROM XX");
SqlDataReader Reader = (SqlDataReader)x.ExecuteReader();

return (List<Contractor>)DatabaseToContractor(Reader);

}

این متد قرار یه arryList برگردونه , در خط دوم یک DataReader با داده های مناسب پر میشه.
در خط سوم رکوردهای DataReader در تابع DatabaseToContractor با یک حلقه به یک arryList منتقل میشن و در آخر ArryList برگشت داده میشه.


اگه منبع یا سایتی داری بهم بدی ممنون میشم
در عکس ضمیمه:

mohsen_zelzela00
دوشنبه 18 خرداد 1388, 18:05 عصر
وقتی میگید مثال , چون معمار چند لایه هست و هر لایه با لایه های دیگه ارتباط داره باید یه پروژه کامل براتون بزارم !!!!!
ولی فعلا کد زیر رو یه نگاه بندازید:

public List<Contractor> getContractor()


این متد قرار یه arryList برگردونه , در خط دوم یک DataReader با داده های مناسب پر میشه.
در خط سوم رکوردهای DataReader در تابع DatabaseToContractor با یک حلقه به یک arryList منتقل میشن و در آخر ArryList برگشت داده میشه.


در عکس ضمیمه:

ببخشید دوست عزیز Contractor اینجا چیست و چگونه باید آن را تعریف کنم

adinochestva
دوشنبه 18 خرداد 1388, 20:06 عصر
به طور کلی اگر از wcf استفاده می کنید باید DataContract خودتون رو تعریف کنید استفاده از dataset با wcf باعث performance پایینی میشود
اما اگر از remoting استفاده می شود dataset هم می تونه گزینه خوبی باشد
---
Contractor یک کلاسی مثل کلاس زیر می باشد :


[DataContract()]
public class Customer
{

private string _firstName;
private DateTime _dateOfBirth;
private DateTime _someOtherDate = DateTime.Now;
private bool _isDirty = true;

[DataMember]
public string FirstName
{
get { return _firstName; }
set { _firstName = value; }
}

private DateTime DateOfBirth
{
get { return _dateOfBirth; }
set { _dateOfBirth = value; }
}

[DataMember(IsRequired=true)]
private DateTime SomeOtherDate
{
get { return _someOtherDate; }
set { _someOtherDate = value; }
}

public bool IsDirty
{
get { return _isDirty; }
set { _isDirty = value; }
}

}

حالا شما می تونید List<Customer> تعریف کنید

mohsen_zelzela00
سه شنبه 19 خرداد 1388, 14:08 عصر
به طور کلی اگر از wcf استفاده می کنید باید DataContract خودتون رو تعریف کنید استفاده از dataset با wcf باعث performance پایینی میشود
اما اگر از remoting استفاده می شود dataset هم می تونه گزینه خوبی باشد
---
حالا شما می تونید List<Customer> تعریف کنید
من چون با wcf اصلاً آشنایی ندارم نمی تونم با اون کار کنم قصد یادگیری آن را دارم ولی نمیدونم باید از کجا شروع کنم
از dataset استفاده نمیکنم چون در برنامه نویسی وب dataset کاربردی نداری

با تشکر فراوان

mohsen_zelzela00
جمعه 05 تیر 1388, 23:48 عصر
با سلام
من یک struct با 2 فیلد دارم به صورت زیر


public struct LoginInfo
{
private Boolean Stat;
private Boolean Admin;
}


و بعد از آن یک متد به صورت زیر


public List<LoginInfo> Logion(string UserName,string Password)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\E-Commerce.accdb");
string cmd = "select * from Login where UserName=@Username and Password=@Password";
OleDbDataAdapter Da=new OleDbDataAdapter(cmd,con);
Da.SelectCommand.Parameters.AddWithValue("@UserName", Username);
Da.SelectCommand.Parameters.AddWithValue("@Password", Password);







}


میخواهم با استفاده از generic ها خروجی این متد من ساختاری مثل struct بالا باشه
من در ادامه کد متد خودم باید چه کدی بنویسم

ممنون میشم دوستان عزیز کمکم کنند.......

alirezavafi
شنبه 06 تیر 1388, 00:35 صبح
شما می تونین تو برنامه چند لایه هم از دیتاسیت استفاده کنید
دیتاسیت یک نوع BE هستش (Business Entity)
به Designing Data Tier and Passing Data Through Tier در Microsoft Patterns مراجعه کنید.

mohsen_zelzela00
شنبه 06 تیر 1388, 11:33 صبح
شما می تونین تو برنامه چند لایه هم از دیتاسیت استفاده کنید
دیتاسیت یک نوع BE هستش (Business Entity)
به Designing Data Tier and Passing Data Through Tier در Microsoft Patterns مراجعه کنید.

با تشکر دوست عزیز ولی من چون برنامه نویسی وب انجام میدم dataset کاربرد خاصی برای من نداره

majid325
یک شنبه 14 تیر 1388, 04:22 صبح
خط آخر مثالی که گزاشتم این بود:

return (List<Contractor>)DatabaseToContractor(Reader);
درسته؟
تو این خط قراره یه لیست از کلاس مورد نظر (Contractor) به واسطه متد DatabaseToContractor که یه پارامتر از نوع Reader میگیره برگشت داده بشه.

یعنی در متد DatabaseToContractor شما در یک loop تمام رکورد های Reader رو تو یه list میریزید.


private object DatabaseToContractor(SqlDataReader reader)
{
List<Contractor> Contractors = new List<Contractor>();

while (reader.Read())
{
Contractor contractor = new Contractor(reader["filde1"].ToString(), reader["filde2"].ToString());
Contractors.Add(contractor);
}

return Contractors;
}