PDA

View Full Version : Dynamic Relation



mahdi_negahi
شنبه 02 تیر 1386, 00:18 صبح
سلام کسی درباره dynamic relation چیزی میدونه
توضیح میدهم
من یک جدول دارم با ستونهای زیر
1-ID
2-Name
3-surname
4-NatinalCode کد ملی

ID کلید اصلی حالا میخواهم Name و Surname و کد ملی هم یکتا یا به اصطلاح کلید کاندید باشند

میخواهم بدونم میشه در DAL این کارو کرد

اگر کسی در این ضمینه تجربه داره لطفا راهنمایی کنه
راستی اینم میدونم که DB این کارو میکنه پس نگید چرا با DB نمیکنید

azmoodeh
شنبه 02 تیر 1386, 00:30 صبح
سلام

بله میشه اینکار رو کرد ، می تونید یک متد برای این کار ایجاد کنید که دو ستون رو بگیره و از شی Relation در دیتاست استفاده کنید و بین اونها رابطه برقرار کنید.حالا می تونید هم این متد رو خیلی کلی در نظر بگیرید که توی بقیه پروژه هاتون هم استفاده بشه هم ساده در حد پروژه ای که در حال انجام اون هستید.
در مورد شی Relation هم اگر خواستید تا توضیح داده بشه .
موفق باشید.

mahdi_negahi
شنبه 02 تیر 1386, 00:43 صبح
شاید اسمو بد نوشتم من نمی خوام ارتباط داشته باشد من میخوام یکتا باشد
harf zadan sadast, kodo be man bede

azmoodeh
شنبه 02 تیر 1386, 00:56 صبح
سلام
پست آخرتون کمی از لحاظ نگارشی نامفهوم بود . ولی حدس می زنم شما می خواید در DAL یک فیلد رو کلید قرار بدید

باز هم جوابش بله هست و شما می تونید در DAL اینکارو انجام بدید.

کد زیر رو از یک کتاب براتون با توضیحاتش قرار می دم.


Setting a primary key
As is common for a table in a relational database, you can supply a primary key, which can be based on
one or more columns from the DataTable.
The following code creates a primary key for the Products table, whose schema we constructed by hand
earlier.
Note that a primary key on a table is just one form of constraint. When a primary key is added to a
DataTable, the runtime also generates a unique constraint over the key column(s). This is because there
isn’t actually a constraint type of PrimaryKey—a primary key is simply a unique constraint over one or
more columns.
public static void ManufacturePrimaryKey(DataTable dt)
{
DataColumn[] pk = new DataColumn[1];
pk[0] = dt.Columns[“ProductID”];
dt.PrimaryKey = pk;
}
Because a primary key can contain several columns, it is typed as an array of DataColumns. A table’s
primary key can be set to those columns simply by assigning an array of columns to the property.
To check the constraints for a table, you can iterate through the ConstraintCollection. For the autogenerated
constraint produced by the above code, the name of the constraint is Constraint1. That’s not
a very useful name, so to avoid this problem it is always best to create the constraint in code first, then
define which column(s) make up the primary key.
The following code names the constraint before creating the primary key:
DataColumn[] pk = new DataColumn[1];
pk[0] = dt.Columns[“ProductID”];
dt.Constraints.Add(new UniqueConstraint(“PK_Products”, pk[0]));
dt.PrimaryKey = pk;
Unique constraints can be applied to as many columns as you want.

موفق باشید

mahdi_negahi
شنبه 02 تیر 1386, 01:04 صبح
با تشکر من امتحان میکنم و نتجه را به شما میگم
البته باید از راهنمایی های استاد راد تشکر کننم که همیشه لطف دارن

mahdi_negahi
شنبه 02 تیر 1386, 01:09 صبح
البته من میخوام اینو در DAL و TableAdapter استفاده کنم

azmoodeh
شنبه 02 تیر 1386, 01:14 صبح
اگر DAL رو با شیوه و شرایط خاصی پیاده نکرده باشید مشکل خاصی نداره. همین متدها رو ببرید و با توجه به Structure خودتون تعریف کنید .
اگر هم جور دیگه ای هست که نمیشه اینکار رو کرد میتونیم در موردش بحث کنیم و یه روش دیگه پیدا کرد

موفق باشید

mahdi_negahi
شنبه 02 تیر 1386, 01:19 صبح
با تشکر هر چی سر تاپیک قبلی کفرمو در اوردی اینجا یک دنیا ازت ممنونم البته من DAL با توجه به مقاله خودم نوشتم که البته از روش استانداردی پیروی میکند