PDA

View Full Version : سوال: چطور میشه نام و فیلدهای یک جدول رو پیدا کرد



Reza_Yarahmadi
چهارشنبه 12 فروردین 1388, 16:31 عصر
سلام
چطور میشه برنامه فقط با داشتن آدرس بانک نام تمام جدولها ، فیلدهای هر جدول و همچنین نوع هر فیلد رو پیدا کنه. از چه دستوری باید استفاده کنم؟
اگه راهنماییم کنید ممنون میشم.

antisocial
چهارشنبه 12 فروردین 1388, 19:35 عصر
دوست عزیز.اگر روشی برای پیدا کردن فیلد های یک جدول مخوای من اینو بلدم اما برای نام جدول روشی رو بلد نیستم.(یعنی تا حالا به کارم نیومده)
برای پیدا کردن فیلد های یک جدول ابتدا باید یه دیتاتیبل تعریف کنی بعد اونو با یه فرمان سلکت کلی باند کنی.بعد یکی یکی با یه حلقه ی فورایچ یا فور خاصیت کپشن دیتاکالمن های دیتا تیبل رو به یه کالکشن یا یه متغیر رشته ای یا هر چیز مد نظر خودت اد کنی (البته یادت باشه تمام این کار هارو باید داخل حلقه انجام بدی) .همچنین برای نوعش از خاصصیت دیتا تایپش میتونی استفاده کنی البته یادت باشه اونارو حتما به استرینگ تبدیل کنی.
اما در این روش مشکلاتی وجود داره که یکیش اینه که اگه یه فیلد از نوع SQL-Identity یا Access -Autonumber یا Oracle - Sequence باشه نمیتونی متوجه بشی اگه روشی برای این یه مورد پیدا کنی که ما بفهمیم کدوم فیلد اتو نامبره ازت ممنون میشم.
موفق باشی

hamid_200611
چهارشنبه 12 فروردین 1388, 20:13 عصر
سلام quer زیر رو تو هر دیتابیس اجرا کنی لیست جداول را میده.
select * from sysobjects where xtype='u'

Reza_Yarahmadi
چهارشنبه 12 فروردین 1388, 22:05 عصر
سلام quer زیر رو تو هر دیتابیس اجرا کنی لیست جداول را میده.
select * from sysobjects where xtype='u'

دوست عزیز اول از اینکه جواب سؤالمو دادید ممنونم اما این کد جواب نداد با پیغام خطایی مواجه میشه. پیغام میده که کوئری یا جدولی مبتنی بر sysobjects پیدا نشد.:ناراحت:

احمد سامعی
چهارشنبه 12 فروردین 1388, 23:18 عصر
سلام
اين پست مربوط به اين تالار نمي شه و بايد در تالار بانك هاي اطلاعاتي مربوطه مثل SQL Server و يا Access و يا هر چيز ديگه استفاده مي كنيد بپرسيد.

تا الان كه مدير تالار حذفش نكرده احتمالاً سرش شلوغ بوده
لطفاً به قوانين تالارها نگاه كنيد.

Reza_Yarahmadi
جمعه 14 فروردین 1388, 10:39 صبح
از دوستان کسی نیست کمک کنه مشکل من حل بشه؟:ناراحت:

Ali_Mor
جمعه 14 فروردین 1388, 12:57 عصر
از متد GetSchema کلاس SqlConnection استفاده کن. یک کم باهش ور بری سر در میاری.

mohsen_csharp
یک شنبه 16 فروردین 1388, 09:41 صبح
من یه برنامه برای مدیریت sqlserver نوشته ام و در آن به راحتی میشه به پایگاه داده ها و لیست جداول و .. دسترسی داشت

http://barnamenevis.org/forum/showthread.php?t=153480
از خاصیت server این کلاس استفاده کن

Sweety
دوشنبه 31 فروردین 1388, 09:25 صبح
درSQL2005 از اين Query براي پيدا كردن جداول استفاده كنيد


select name from sys.objects where type='u'

وبراي فيلدها از اين Query



select C.name from sys.objects O
inner join sys.columns C on o.object_id=C.object_id
where o.type='u'

esmaeily-hosein
دوشنبه 31 فروردین 1388, 11:14 صبح
sp_tables هم هست . خوبیش cache اونه .

NewFoxStudent
دوشنبه 31 فروردین 1388, 11:35 صبح
برای اینکار بجز راه های بالا که دوستان اشاره کردند میتونی از کلاس SqlCommandBuilder هم استفاده کنی

betisa
دوشنبه 23 خرداد 1390, 00:38 صبح
در SQL server 2005 va 2008 از دستور زیر میتونی استفاده کنی
برای پیدا کردن table ها:
SELECT TABLE_NAME FROM information_schema.TABLES

وبرای پیدا کردن فیلد های table ها:
SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'TABLE_NAMEl'