PDA

View Full Version : وارد کردن اطلاعات جداول دیتابیس در دیتا گرید ویوو



jafarpalideh
چهارشنبه 21 تیر 1391, 22:36 عصر
با سلام
من توی دیتابیسم 15 تا جدول دارم که تمامی فیلدهای این جداول با هم یکسانه یعنی هر 10 تا جدول دارای این ستونهاست
tblID و MissonName و dateBegin و Priod و dateEnd و NextR و state
حالا سوال من اینه که چطور اطلاعات این 10 تا جدولم رو توی دیتاگرید ویو نمایش بدم با این فرض که جداول من پویاست یعنی هر لحظه امکان داره که یه جدول بهش اضافه بشه ، یعنی 15 تا بشه 16 تا یا 20 تا
آخه میخوام از روی دیتاگریدم واسش سرچ بزارم
ممنون میشم دوستان یه راهکار جلوی پای من بزارن
و این رو بگم که حداکثر جدولی که ممکنه ایجاد بشه 35 تاست
ولی هر جدول امکان داره 1000تا فیلد هم داشته باشه
بی صبرانه منتظر راهنماییتون هستم

ali_kolahdoozan
پنج شنبه 22 تیر 1391, 07:08 صبح
این طراحی دیتا بیس از چه مدلینگ یا patern موجود در عالم هستی پیروی میکند که شما باید Table اضافه کنید مرطب ؟ . میشه این روش حکیمانه را بیشتر باز کنید برای همه ؟

jafarpalideh
پنج شنبه 22 تیر 1391, 14:04 عصر
ممنون که اینقدر زیبا وصف کردید این برنامه و مدلینگ عجیب و غریب من رو .
اسم مدلینگش اینه : (ناشی بودن کاربر تازه کار(خودم:چشمک:) )

این فقط یه سواله
آیا جواب داره یا نه؟
آیا میشه اطلاعات اون 10 تا جدول رو توی گرید ویو آورد ؟؟ یا راهکاری نداره؟؟
همین

مرتضی تقدمی
پنج شنبه 22 تیر 1391, 14:45 عصر
سلام
شما می تونید کوئری های خودتون رو تو برنامه ایجاد کنید. براساس تعداد جداولی که دارید و نام هایی که به اونا دادید می تونید این کوئری ها رو تنظیم و ایجاد کنید.

jafarpalideh
پنج شنبه 22 تیر 1391, 14:58 عصر
میدونم کاری که کردم اشتباهه ولی خوب برنامست دیگه
آقای مقدمی میشه یه نمونه مثال بزنید
تیبل های من اینجوری زیاد میشه : tbl_1000_m , tbl_1001_m ,tbl_1002_m و الی آخر
ممنون میشم بیشتر راهنماییی کنید

jafarpalideh
پنج شنبه 22 تیر 1391, 15:03 عصر
میدونم کاری که کردم اشتباهه ولی خوب برنامست دیگه
آقای مقدمی میشه یه نمونه مثال بزنید
تیبل های من اینجوری زیاد میشه : tbl_1000_m , tbl_1001_m ,tbl_1002_m و الی آخر
ممنون میشم بیشتر راهنماییی کنید

jafarpalideh
پنج شنبه 22 تیر 1391, 15:08 عصر
البته نهایت تیبلی که بخوام ایجاد کنم 30 تاست
از اول راه رو اشتباه رفتم
ولی خوب هر راه اشتباه رفتنی بالاخره یه راهکار داره
من دیتابیسم رو میزارم اینجا

http://s3.picofile.com/file/7434662575/DataBase.rar.html

مرتضی تقدمی
پنج شنبه 22 تیر 1391, 15:10 عصر
خب شما می تونید کوئری پر کردن دیتا گرید رو در برنامه به این صورت تولید کنید:

string str;
str = "select * from tbl_" + i.ToString() + "_m ";

i در این کوئری شماره جدول است. چون گفتید تعداد جداول مشخص نیست, می تونید شماره آخرین جدولی رو که ایجاد می کنید یک جایی ذخیره کنید تا بعدا در کوئری ای مثل کوئری بالا ازش استفاه کنید. همچنین اگه نام فیلدها هم از فرمت خاصی پیروی می کنه,می تونید مثل همین روش فیلدهای مورد نظر رو هم استخارج کنید.
موفق باشید

jafarpalideh
پنج شنبه 22 تیر 1391, 15:28 عصر
واقعا ممنونتم آقای تقدمی
داری نجاتم میدی
هدف من از اینکار پیدا کردن یه تاریخ مشخصه توی گریدویوی خودم که توی سرچی که میخوام قرار بدم باید پیاده سازیش کنم
ولی بخاطر تازه کار بودنم توی بعضی زمینه ها مثل این واقعا گیر دارم
اگه وقت بیشتری واسه توضیح برام بزارید واقعا ممنونت میشم
میشه یه نگاه به دیتابیسم بندازید و نظرتون رو بگید؟با اس کیو ال 2008 نوشتمش
اتچ کنید.

مرتضی تقدمی
پنج شنبه 22 تیر 1391, 16:12 عصر
میشه یه توضیح واضح تر در مورد دیتابیس و خواستتون بدید؟

jafarpalideh
پنج شنبه 22 تیر 1391, 19:31 عصر
توی دیتابیس من دوتا جدول اصلی وجود داره
یه جدول ماشین و یه جدول زیر سیستم که کارهای که واسه هر ماشین توی یه دوره ی خاص باید انجام بشه قرار میگیره (مثلا پیکان و زیر سیستم هاش مثل روغن کار و تنظیم باد و و و)اشتباه من اینجا بود که واسه هر ماشین یه جدول جدا به عنوان زیرسیستم توی دیتابیسم قرار دادم واین باعث این مشکل بزرگ شده واسم
وقتی نرم افزار رو تکمیل کردم متوجه شدم که مثلا توی یه روز خاص مثل مثلا امروز نمیتونم تمام زیر سیستم هام رو ببینم
یعنی تمام مشکل من اینه که تمام کارهای که باید توی یه روز خاص انجام بشه رو نمیتونم ببینم چون این تاریخ ها توی جدول ها ی متفاوتی توی دیتابیس من قرار میگیره

jafarpalideh
پنج شنبه 22 تیر 1391, 21:29 عصر
با سلام مجدد
من یه اسکریپت گیر آوردم واسه مشکلم و اصلا نمیدونم که میتونه مشکل من رو حل کنه یا نه و از اون بدتر اینکه اصلا نمیدونم از این اسکریپت چطور استفاده کنم
اگه دوستان کامل بگن که چطور باید از این اسکریپت استفاذه کنم واقعا لطف کردن.
اسکریپت زیر روی پایگاه داده Pubs به دنبال کلمه Computer میگردد :


EXEC SearchAllTables 'Computer'
GO


و این هم کد کامل store procedure میباشد :





CREATE PROC SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN


CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END

SELECT ColumnName, ColumnValue FROM #Results
END

ali_habibi1384
پنج شنبه 22 تیر 1391, 23:00 عصر
با استفاده از دستورUnion در اس كيو ال يك خروجي كلي از جدولات بگير خيلي راحت يك جدول داري ازش استفاده كن:


select ... from tbl_1000_m
UNION
select ... from tbl_1001_m
Union
.
.
.

درباره اون قضيه عالم هستي و اينا هم خيلي باحال اومدي كلي خنديدم. منم با نظرت موافقم:چشمک:

hosseinenayati_2009
جمعه 23 تیر 1391, 03:59 صبح
توی دیتابیس من دوتا جدول اصلی وجود داره
یه جدول ماشین و یه جدول زیر سیستم که کارهای که واسه هر ماشین توی یه دوره ی خاص باید انجام بشه قرار میگیره (مثلا پیکان و زیر سیستم هاش مثل روغن کار و تنظیم باد و و و)اشتباه من اینجا بود که واسه هر ماشین یه جدول جدا به عنوان زیرسیستم توی دیتابیسم قرار دادم واین باعث این مشکل بزرگ شده واسم
وقتی نرم افزار رو تکمیل کردم متوجه شدم که مثلا توی یه روز خاص مثل مثلا امروز نمیتونم تمام زیر سیستم هام رو ببینم
یعنی تمام مشکل من اینه که تمام کارهای که باید توی یه روز خاص انجام بشه رو نمیتونم ببینم چون این تاریخ ها توی جدول ها ی متفاوتی توی دیتابیس من قرار میگیره

سلام من تو تاپیک قبلی جوابت تون را دادم،مثل اینکه شما کار خودتون را می کنید برگردید به تاپیک قبلی اگه کاری که گفتم را انجام بدید .حتما مشکلتون حل میشه.اگه سوال میذارید معنیش این که شما جواب ما را اجرا کنید نه دوباره کار خودتون را بکنید.خوب چه کاری سوال نکنید.معذرت میخوام اینقدر جواب بدی می دم

ali_kolahdoozan
جمعه 23 تیر 1391, 05:35 صبح
سلام

وقتی میدانی روشت غلطه ؛ خوب عوضش کن . این راه آخرش بن بسته . اگر پروژه دانشجویی است که هیچی . اما اگر کار واقعی است بدون که گیر میکنی . مثلا بعضی جاها شما دسترسی ایجاد جدول نداری . بعد گیر میکنی

Mahmoud.Afrad
جمعه 23 تیر 1391, 06:46 صبح
حتی اگر پروژه دانشجویی هم باشه فکر نکنم استاد(البته اگر حالیش باشه و دقت کنه) این طراحی اشتباه رو بپذیره.

jafarpalideh
جمعه 23 تیر 1391, 07:39 صبح
آقا من که اعتراف کردم به عینه که کاره اشتباهه و ممنون که دوستان تذکر میکن . بخدا دیگه اینکار رو نمیکنم
ولی حالا 2 تا مشکل :
یکی اینکه من بعضی از جدول هام ایجاد نشده هنوز و به مرور زمان ایجاد میشه
و دومی اینکه چطور بفهمم که جدولم ایجاد شده یا نه ؟؟؟؟؟
باز هم این موارد رو بزارید به حساب ( مریخی بودن نویسنده)

ali_habibi1384
جمعه 23 تیر 1391, 10:02 صبح
آقا من که اعتراف کردم به عینه که کاره اشتباهه و ممنون که دوستان تذکر میکن . بخدا دیگه اینکار رو نمیکنم
ولی حالا 2 تا مشکل :
یکی اینکه من بعضی از جدول هام ایجاد نشده هنوز و به مرور زمان ایجاد میشه
و دومی اینکه چطور بفهمم که جدولم ایجاد شده یا نه ؟؟؟؟؟
باز هم این موارد رو بزارید به حساب ( مریخی بودن نویسنده)

چرا به مرور زمان! خب همه شونو ايجاد كن بعدشم با يك Union همشونو بهم بچسبون اينجوري كار غلطي كه كرده بودي جبران ميشه اينقدر خودتو مارو هم عذاب نده! يكبار حرف گوش بده:لبخند:

jafarpalideh
جمعه 23 تیر 1391, 10:15 صبح
به روی چشم
واقعا ممنون که وقت گذاشتید و بنده رو راهنمایی کردید
شاید باورتون نشه که من از برنامه نویسی بدم میومد ولی با اومدن به این سایت و دیدن مطالب شگفت انگیزش انگیزم واسه برنامه نوشتن زیاد شده
یه جوایی وابسته شدم به این سایت و هر روز الکی هم شده باید یه سر بهش بزنم
مخصوصا اینکه واسه منی که تازه کارم یه کلاس آموزشیه و بهم اجازه نمیده که حتی به این قضیه فکر کنم که نمیشه و نمیتونم و بریدم و این حرفا
واقعا دوستان با راهنمایی که میکنن یه دنیا محبتشون رو می رسونن
من اینجا از تمام کسانی که به حرف نحو کوچکترین کمکی رو واسه راه افتادن کار بندگان خدا میکنن تشکر میکنم و دستشون رو می بوسم