PDA

View Full Version : سوال: نحوه ی ارتباط دادن دو جدول DB به هم؟!



IranVB
چهارشنبه 21 دی 1390, 16:05 عصر
سلام دوستان
دوستان خیلی به کمکتان احتیاج دارم، مشکلی است که در ابتدای پروژه درگیرش بودم، اما گذاشتمش و الآن که باید برنامه رو تحویل بدم گریبانگیرم شده نمیدونم چکار کنم
من یک فرم دارم حاوی دو تا DataGrid، که اولیش نام ناشرین را لیست میکند و دومی هم لیست کتابهای ناشر انتخاب شده از لیست اول
مشکل من اینجاست که اصلا" نمیدونم چطوری اینکار رو بکنم یعنی وقتی ناشر انتخاب شد کتابهای مربوط به او در لیست دومی نشون داده بشن،
من در اکسس برای لیست ناشرین و کتابهای هر ناشر هرکدام یک تیبل جداگانه ایجاد کرده ام، یکجایی خواندم که باید از پایگاه داده رابطه ای استفاده کنم که متاسفانه چون عجله دارم اصلا" هیچ چیزی در این رابطه نفهمیدم

اگر ممکن است کد دو مورد زیر را یکی از دستان زحمتش را بکشند به سورس اضافه کنند:
1- دکمه ای با عنوان "افزودن جدید" که ناشرجدید را به لیست میافزاید، من میخواهم وقتی که بر روی این دکمه کلیک کردم در لیست ناشرین یک رکورد جدید ایجاد شود و لیست دوم که مربوط به ناشرجدید است خالی شود تا بتوانیم نام کتب ناشرجدید را در آن اضافه کنیم که نمیدانم چه دستوری را باید در این دکمه بنویسم (هیچ اطلاعات کافی در زمینه کار با پایگاه داده ندام)

2- و چه دستوری بنویسم که وقتی که نام ناشر از لیست اول انتخاب شد لیست همه کتابهایش را در لیست دوم نمایش دهد

خیلی خیلی از همه دوستانم ممنونم

ali190
پنج شنبه 22 دی 1390, 09:03 صبح
سلام
نمونه اصلاح شد
یاعلی

hosein3000
پنج شنبه 22 دی 1390, 13:33 عصر
با تشکر از دوست عزیز منم این مشکلو دارم
فقط یه سوال ؟
اگه جدول ها بیش از یکی باشه اون وقت چطوری دستور select رو بنویسیم؟
من یک جدول دارم که توش مشخصات مالک نوشته شده و می خوام وقتی روی نام مالک یا ای دیش کلیک کردم توی چند جدول مختلف مشخصات مربوط به اون مالک نشون داده بشه
با تشکر

ali190
پنج شنبه 22 دی 1390, 15:38 عصر
سلام
لطفاً سئوال رو در قالب نمونه پروژه بیان کنید(برای زودتر رسیدن به جواب)
ممنونم
یاعلی

IranVB
پنج شنبه 22 دی 1390, 18:11 عصر
خیلی ممنون، خیلی مفید بود
یک سوال دیگر هم در همین رابطه داشتم،
چون از دوتا کنترل adodc استفاده شده است برای چاپ به چه صورت انجام دهم؟ چون اینطوری که دیدم DataReport و ActiveReport فقط یک کنترل adodc قبول میکنند؟

باتشکر

ali190
پنج شنبه 22 دی 1390, 18:27 عصر
از کریستال ریپورت استفاده کن
یاعلی

kitcat_m18
جمعه 23 دی 1390, 22:56 عصر
سلام،
برای استفاده از اطلاعات چند جدول در قالب یک جدول می تونید از دستور Join در SQL استفاده نمایید.
برای نشان دادن چند گزارش مختلف در یک گزارش در Active report هم از ابزار SubReport موجود در آن استفاده نمایید.
موفق باشید. :لبخندساده:

hosein3000
سه شنبه 27 دی 1390, 00:20 صبح
خوب برای 20 جدول جطور؟میشه دستور رو بنویسین؟

kitcat_m18
سه شنبه 27 دی 1390, 09:38 صبح
سلام،
اگه تعداد جداولت بیشتر از 2 تا هست هم دستور Join رو می تونی استفاده کنی اما عاقلانه تر اینه که از Query استفاده کنی.
این لینک هم برای http://msdn.microsoft.com/en-us/library/ms191430.aspx Join
موفق باشی :لبخندساده:

karimi64bit
جمعه 30 دی 1390, 23:44 عصر
CREATE TABLE [dbo].[parts]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[parts] [nvarchar] (100) COLLATE Arabic_CI_AS NOT NULL,
[type] [nvarchar] (100) COLLATE Arabic_CI_AS NULL,
[typeid] [int] NOT NULL
)
GO
IF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT=0 BEGIN INSERT INTO #tmpErrors (Error) SELECT 1 BEGIN TRANSACTION END
GO
PRINT N'Creating primary key [PK_parts] on [dbo].[parts]'
GO
ALTER TABLE [dbo].[parts] ADD CONSTRAINT [PK_parts] PRIMARY KEY CLUSTERED ([id])
GO
ALTER TABLE [dbo].[parts] ADD
CONSTRAINT [FK_parts_parts] FOREIGN KEY ([typeid]) REFERENCES [dbo].[parts] ([id])
GO

danialafshari
جمعه 17 شهریور 1391, 00:02 صبح
می دونم بحث قدیمیه ولی این مطلب خالی از لطف برای دوستان نیست...

اول اینکه شما باید برای بانکتون وقت بزارید و یک بانک خوب طراحی کنید بانک که خوب طراحی بشه 50% کار حله
مثلا وقتی Relation ها درست طراحی شده باشند به این صورت می شود که یک ناشر چند کتاب ممکنه داشته باشه یعنی 1 به n هست
در کد نویسی هم ابتدا در فرم ناشر مشخصات ناشر را وارد می کند و بعد ذخیره !
بعد در یک فرم دیگر به محض وارد کردن کد ناشر اطلاعات ناشر به صورت Read only نمایش داده می شوند و در زیر text box هایی میذارید که اطلاعات را در جدول کتاب ها ذخیره کند جایی که کد ناشر هست.
می بینید که همش بستگی به طراحی خوب بانک اطلاعاتی برنامه دارد. من C#‎ کارم و زیاد vb کار نکردم ولی توضیح کلی کار همینه
و در آخر توسط گزارش گیر ها اطلاعات مورد نیاز رو چاپ می کنه

موفق باشید