PDA

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



neda_dela
پنج شنبه 17 دی 1388, 23:37 عصر
سلام دوستان
یه برنامه اخیرا از یکی از دوستانم به دستم رسید که خواستم بررسیش کنم و به یه مورد جالب برخوردم
می خاستم اگه دوستان کسی میدونه این مورد رو برام توضیح بده:
دوست من توی دیتا ست برنامه علاوه بر تیبل های موجود در بانک یه تیبل آداپتر دیگه هم داشت که می گفت این تیبل اصلا توی بانک نیست و ساخته نشده و از اون فقط برای کریستال ریپورت هاش استفاده می کنه چون میخاد از فیلدهای دو تا تیبل گزارش بگیره و این تیبل آداپتری که می گم شامل همه همون فیلدهایی هست که میخاد ازشون گزارش بگیره.
چه طوری میشه یه همچین تیبل آداپتری رو ساخت توی دیتا ست؟:قلب:

hakelberfin
جمعه 18 دی 1388, 00:17 صبح
شما در sql میتونین فیلدهایی رو از چند جدول انتخاب کنید و در یک Tabel مجازی جاسازی کنید .

مثل این:


SELECT dbo.Illness.IllnessID , dbo.Illness.IllnessName
FROM
(SELECT dbo.IllTOIllness.IllID , dbo.IllTOIllness.IllnessID
FROM dbo.IllTOIllness
WHERE dbo.IllTOIllness.IllID = 41 ) InnerTable RIGHT OUTER JOIN dbo.Illness ON InnerTable.IllnessID = dbo.Illness.IllnessID


جدول InnerTable یک جدول مجازیست که طی این دستور ساخته میشه و در جایی ذخیره نمیشه.
البته دوستتون میتونست از View ها جهت این کار استفاده کنه

neda_dela
جمعه 18 دی 1388, 10:20 صبح
شما در sql میتونین فیلدهایی رو از چند جدول انتخاب کنید و در یک Tabel مجازی جاسازی کنید .

مثل این:


SELECT dbo.Illness.IllnessID , dbo.Illness.IllnessName
FROM
(SELECT dbo.IllTOIllness.IllID , dbo.IllTOIllness.IllnessID
FROM dbo.IllTOIllness
WHERE dbo.IllTOIllness.IllID = 41 ) InnerTable RIGHT OUTER JOIN dbo.Illness ON InnerTable.IllnessID = dbo.Illness.IllnessID


جدول InnerTable یک جدول مجازیست که طی این دستور ساخته میشه و در جایی ذخیره نمیشه.
البته دوستتون میتونست از View ها جهت این کار استفاده کنه
متشکرم آره آره همون تیبل مجازی بود
اما من توی دستورات دستوری شبیه به این که شما نوشتی نوشتی ندیدم . از طریق ویزارد میشه توضیح بدی؟ اصلا امکان داره؟
چون فقط یه چیزی که به من گفت این بود که توی دیتا ست روی یکی از فیلدهای موجود کلیک راست کنم add رو بزنم و column رو انتخاب کنم تا بتونم یه فیلد دیگه بهش اضافه کنم
خیلی دوست دارم بدونم چه طوری این جدول رو ساخته
ممنون میشم اگه کمکم کنی آخه به درد پروژه خودم هم می خوره

mir555
جمعه 18 دی 1388, 10:30 صبح
تو دیتا ست راست کلیک کن add new data table انتخاب کن
یک دتیا تیبل خالی می سازیم تا این مرحله حالا روی دیتا تیبل ساخته شده راست کلیک می کنیم add->column انتخاب می کنیم
حتی می تونی کلید اصلی یا کلید خارجی هم انتخاب کنی

neda_dela
جمعه 18 دی 1388, 20:20 عصر
تو دیتا ست راست کلیک کن add new data table انتخاب کن
یک دتیا تیبل خالی می سازیم تا این مرحله حالا روی دیتا تیبل ساخته شده راست کلیک می کنیم add->column انتخاب می کنیم
حتی می تونی کلید اصلی یا کلید خارجی هم انتخاب کنی
ممنون این کار رو هم قبلا انجام داده بودم اما این تیبلی که می گم یه table adapter بود با نام Report1 نه data table یعنی شکل ظاهریش هم مثل تیبل آداپتر های موجود در دیتا ست بود چون قسمت پایینش نوشته: Report1TableAdapter و باز زیر اون نوشته: Fill,GetData()
یعنی دقیقا این یه تیبل آداپتر هست
اما وقتی دیتا تیبل می سازیم این قسمت های پایینی رو نداره
در ضمن وقتی روی تیبل آداپتر ها کلیک راست می کنیم یه گزینه داره به نام configure... که دیتا تیبل ها باز این رو ندارن
از طریق این گزینه میشه لیست فیلدهای تیبل رو با کوئری دید.
مثلا:
SELECT firstname, lastname, fname, pic, tel, mobile, sath, term, years, fjob FROM dbo.Report1
البته در رابطه با اون دستوری که دوستمون hakelberfin نوشته باید بگم من توی کدهایی که برای گزارش گیری استفاده کردم یعنی یکی از دوستان بهم کمک کردن و گفتن یه چیزی مشابه دارم:


try
{
SqlConnection Conn = new SqlConnection("Data Source=.;Initial Catalog=quran;Integrated Security=True");
string StrSelect = "SELECT [st-shakhsi].firstname, [st-shakhsi].lastname, [st-shakhsi].fname, [st-shakhsi].pic, [st-shakhsi].tel, [st-shakhsi].mobile, [st-shakhsi].fjob, [st-sabt].sath, [st-sabt].years, [st-sabt].term, [st-sabt].educator FROM [st-shakhsi] INNER JOIN [st-sabt] ON [st-shakhsi].id = [st-sabt].id WHERE ([st-sabt].school = '" + sch + "') AND ([st-sabt].term = '" + term + "') AND ([st-sabt].years = '" + year + "')";
SqlDataAdapter DA = new SqlDataAdapter(StrSelect, Conn);
quranDataSet DS = new quranDataSet();
DS.Clear();
Conn.Close();
Conn.Open();
DA.Fill(DS, "t1");
Conn.Close();
CrystalReport3 CR = new CrystalReport3();
CR.SetDataSource(DS.Tables["t1"]);
crystalReportViewer1.ReportSource = CR;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}

من خیلی دوست دارم بدونم این تیبل چطوری ساخته شده کمک

neda_dela
شنبه 19 دی 1388, 12:16 عصر
بچه ها کسی نیست منو کمک کنه؟:ناراحت: