PDA

View Full Version : اتصال یک پایگاه داده SQLserver 2000 به#C



atefeh_63
جمعه 08 تیر 1386, 13:23 عصر
با سلام
من می خوام یک پایگاه داده به اسم Info_univercity رو به#C وصل کنم لطفاً تو نوشتن کد ها کمکم کنید .
درضمن پروژة من تحت ویندوزه
متشکرم

choobin84
جمعه 08 تیر 1386, 13:51 عصر
با استفاده از کانکشن استرینگ connectionString این کار را انجام دهید

kiani.mehdi
جمعه 08 تیر 1386, 14:16 عصر
با سلام
من می خوام یک پایگاه داده به اسم Info_univercity رو به#C وصل کنم لطفاً تو نوشتن کد ها کمکم کنید .
درضمن پروژة من تحت ویندوزه
متشکرم

از کلاسی به نام SQLConetion به صورت زیر استفاده کن





SqlConnection con = new SqlConnection("server=(local);database=Info_univercity;Integrated Security=True;");


اگه دیتا بیست روی کامپیوتر دیگریست باید به جای (local) آدرس آی پی همون کامپیوتر را بدی
البته باید تنظیمات دیگری را هم انجام بدی
ولی اگه دیتا بیست روی همون کامپیوتری است که برنامه ایت هست از هیمن دستور استفاده کن

رای خواندن داده ها کلاس های متفاوتی وجود دارند
مثل datatable و dataset و ...

یه برنامه کوچیک برات میذارم که جاب هر 2 تا پستت توش هست
هم کانکت شدن وهم store procedure
البته بهاره شما مطالب ADO.NET را فرا بگیرید
ئر ضمن ورودتو ن را به سایت تبریک میگم
موفق باشید
مهدی کیانی

مهدی رحیم زاده
جمعه 08 تیر 1386, 16:53 عصر
آقای کیانی عزیز سلام
من کدتونو نگاه کردم ...
حالا اگر بخوام که بانک رو عوض کنم و داده ها رو از یک Datatbase دیگه بخونم باید چکار کنم ...
من یک دیتا بیس ایجاد کردم با یک Table جدید ....
اونو به Attach ، SQL Server کردم و تو connectionstring به جای اسم قبلی دیتابیس اسم دیتابیس جدید رو نوشتم اما داده ها همون قبلیا بودن ...
یعنی داده ها رو از همون بانک فبلی می خوند ، چکار کنم که داده ها رو از بانک جدید بخونه ؟؟؟

kiani.mehdi
جمعه 08 تیر 1386, 18:12 عصر
آقای کیانی عزیز سلام
من کدتونو نگاه کردم ...
حالا اگر بخوام که بانک رو عوض کنم و داده ها رو از یک Datatbase دیگه بخونم باید چکار کنم ...
من یک دیتا بیس ایجاد کردم با یک Table جدید ....
اونو به Attach ، SQL Server کردم و تو connectionstring به جای اسم قبلی دیتابیس اسم دیتابیس جدید رو نوشتم اما داده ها همون قبلیا بودن ...
یعنی داده ها رو از همون بانک فبلی می خوند ، چکار کنم که داده ها رو از بانک جدید بخونه ؟؟؟
شما باید اسم دیتا بیستون را بجای اسم دیتا بیسی که در کتنکشن استرینگ هست بنویسی
دقت کن که 2 تا sqlconnection هست
توی هردوش تغییر بده
و در دستور sqldataadapter هم اسم جدولت را بجای STUDENT بذار
البته یه نکته را دقت کن که میشه یه SQLConnection تعریف کرد و اونو در کلاس گذاشت که توی همه متد های کلاس شناخته شده باشه که درستش هم همینه
من برای اینکه برنامه جنبه آموزشی برای کاربر atefe که سوال کرده بودند اینطوری نوشتم
اگه بازم متوجه نشدی بانکن را برم بفرست تا برنامه قبل را اصلاح کنم و برات بفرستم
ایمیل mb.kiani@yahoo.com
موفق باشید
مهدی کیانی

مهدی رحیم زاده
شنبه 09 تیر 1386, 05:51 صبح
من این تغییراتی رو که گفتید دادم اما نشد ....
بانکم هم یه بانک معمولی بود ، آموزشی ...
شما هرچی که دوست دارید بزارید ، اما با این حال من فرستادمش ....

kiani.mehdi
شنبه 09 تیر 1386, 06:36 صبح
من این تغییراتی رو که گفتید دادم اما نشد ....
بانکم هم یه بانک معمولی بود ، آموزشی ...
شما هرچی که دوست دارید بزارید ، اما با این حال من فرستادمش ....

با اینکه نمیدونم مشکلتون کجاست و چیه چون یه مسئله خیلی سادست و توی برنامه قبلی که آپ کرده بودم نمونش بود
ولی با این حال یه نمونه کد دیگه میذارم با بانک خودت
تو این کد هم از دستور using استفاده کردم که برای مدیریت حافظه بهتر به کار میره گفتم شاید بخوای اطلاعات بیشتری در موردش پیدا کنی بدونی چیه

دیتا بیست را هم همراه با کد دوباره میفرستمش گذاشتمش تو یه فولدر به نام Data
موفق باشید
مهدی کیانی

مهدی رحیم زاده
شنبه 09 تیر 1386, 13:15 عصر
شما باید اسم دیتا بیستون را بجای اسم دیتا بیسی که در کتنکشن استرینگ هست بنویسی
دقت کن که 2 تا sqlconnection هست
توی هردوش تغییر بده
و در دستور sqldataadapter هم اسم جدولت را بجای STUDENT بذار

ببینید دوست عزیز کد شما اطلاعات رو نشون میده ...
ولی وقتی که من اسم دیتابیس رو عوض می کنم ، همون اطلاعات قبلی رو نشون میده . چرا، نمیدونم؟
می خوام بدونم شما بجز اینکه دیتابیس رو Attach میکنید و نام دیتابیس رو توی Connection string تغییر می دید ، کار دیگه ای هم انجام میدید ...
یا اینکه لازمه که بانک تو یه مسیر خاص باشه ؟؟؟
ممنونم
___________________________
مهدی رحیم زاده

kiani.mehdi
شنبه 09 تیر 1386, 13:51 عصر
ببینید دوست عزیز کد شما اطلاعات رو نشون میده ...
ولی وقتی که من اسم دیتابیس رو عوض می کنم ، همون اطلاعات قبلی رو نشون میده . چرا، نمیدونم؟
می خوام بدونم شما بجز اینکه دیتابیس رو Attach میکنید و نام دیتابیس رو توی Connection string تغییر می دید ، کار دیگه ای هم انجام میدید ...
یا اینکه لازمه که بانک تو یه مسیر خاص باشه ؟؟؟
ممنونم
___________________________
مهدی رحیم زاده

اینکه شما میگین غیر ممکنه
مگه ممکنه که شما اسم دیتابیس را عوض کنین و باز همون داده ها از همون دیتا بیس قبلی خونده بشه
حتما یه جا داری اشتباه میکنی
برنامت را یه بار دیگه کامل کامپایل کن
احتمالا برنامت error داره
وقتی برنامه کامپایل میشه اگخ حطا داشته باشه یه پیعام میده
ادر این پیغام اگه yes را بزنید برنامه کامپایل نشده و به صورت آخرین باری که درست کامپایل شده اجرا خواهد شد که همان داده های قبلی را نشون میده
اگر no را بزنید برنامه به نحیط framework باز گشته و باید حطا یابی کنی

اینا در صورتی هست که کد شما خطا داره
نکته بعد اینکه علاوه بر اینکه اسم دیتابیس را عوض میکنی باید اسم جدول مورد نظرت را هم در دستور SQLDataAdapter عوض کنی
دیگه اینکه نیازی نیست مسیر دیتا بیس را بدی
کلمه lcoal توی SQLConnection به این معنا ست که دیتا بیس روی همون کامپیوتریست که برنامه داره اجرا میشه
در نهایت اگه باز هم نتونستی برنامت را آپلود کن ببینم مشکل کجاست چون چنین چیزی که میگی غیر مکنه
موفق باشید
مهدی کیانی

choobin84
شنبه 09 تیر 1386, 13:55 عصر
ببینید دوست عزیز کد شما اطلاعات رو نشون میده ...
ولی وقتی که من اسم دیتابیس رو عوض می کنم ، همون اطلاعات قبلی رو نشون میده . چرا، نمیدونم؟
می خوام بدونم شما بجز اینکه دیتابیس رو Attach میکنید و نام دیتابیس رو توی Connection string تغییر می دید ، کار دیگه ای هم انجام میدید ...
یا اینکه لازمه که بانک تو یه مسیر خاص باشه ؟؟؟
ممنونم
___________________________
مهدی رحیم زاده

هیچ ضرورتی در قرار دادن فایل های بانک در کدام درایو و یا مسیر خاصی وجود ندارد.
ظاهرا مشکل شما برمیگرده به اینکه ، بعد از تغییر نام بانک در کانکشن استرینگ ، datagrid رو دوباره از داده های بانک جدید پر نمی کنید.
به نظر نمی یاد کد آقای کیانی مشکلی داشته باشه.

مهدی رحیم زاده
شنبه 09 تیر 1386, 20:38 عصر
اینکه شما میگین غیر ممکنه
مگه ممکنه که شما اسم دیتابیس را عوض کنین و باز همون داده ها از همون دیتا بیس قبلی خونده بشه
حتما یه جا داری اشتباه میکنی
برنامت را یه بار دیگه کامل کامپایل کن
احتمالا برنامت error داره
وقتی برنامه کامپایل میشه اگخ حطا داشته باشه یه پیعام میده
ادر این پیغام اگه yes را بزنید برنامه کامپایل نشده و به صورت آخرین باری که درست کامپایل شده اجرا خواهد شد که همان داده های قبلی را نشون میده
اگر no را بزنید برنامه به نحیط framework باز گشته و باید حطا یابی کنی

اینا در صورتی هست که کد شما خطا داره
نکته بعد اینکه علاوه بر اینکه اسم دیتابیس را عوض میکنی باید اسم جدول مورد نظرت را هم در دستور SQLDataAdapter عوض کنی
دیگه اینکه نیازی نیست مسیر دیتا بیس را بدی
کلمه lcoal توی SQLConnection به این معنا ست که دیتا بیس روی همون کامپیوتریست که برنامه داره اجرا میشه

سلام
ممنونم که اینقدر با حوصله سئوالات رو جواب میدید ...
راستشو بخواین من خیلی بیشتر از شما تعجب کردم ...
اما نمیشه ....
کدی که شما میدید اجرا میشه ولی وقتی که من می خوام از یک بانک دیگه داده ها رو بخونم نمیشه ...
همون داده های بانک قبلی رو نشون میده ( یک دنیا تعجب ... ):متعجب:
من چند تا عکس میزارم ، نگاه کنید ...
برنامه هم همون برنامه شماست فقط من اسم بانک رو تغییر داده که اونو هم میزارم ....

kiani.mehdi
شنبه 09 تیر 1386, 21:06 عصر
سلام
ممنونم که اینقدر با حوصله سئوالات رو جواب میدید ...
راستشو بخواین من خیلی بیشتر از شما تعجب کردم ...
اما نمیشه ....
کدی که شما میدید اجرا میشه ولی وقتی که من می خوام از یک بانک دیگه داده ها رو بخونم نمیشه ...
همون داده های بانک قبلی رو نشون میده ( یک دنیا تعجب ... ):متعجب:
من چند تا عکس میزارم ، نگاه کنید ...
برنامه هم همون برنامه شماست فقط من اسم بانک رو تغییر داده که اونو هم میزارم ....

اول اینکه چرا توی کانکشن استرینگ اسم log مربوط به فایل دیتا بیس هست را گذاشتی؟
وقتی اسم دیتا بیست t1 یا DB1 هست باید اسم خود دیتا بیس را بذاری یعنی t1 و یا DB1 نه اینکه t1_log و یا DB1_log را بذاریاینا فایل های log مربوط به دیتابیس هستند
بعدش هم بهتر نیست دیتا بیست را با کدت بذاری تا بهتر بتونم ببینم و کمک کنم؟
آخه با 4 تا عکس که درست معلوم نیست
کدت را برام بفرست با دیتابیست
به هرحال اون نمونه برنامه هایی که برات فرستادم قطعا با تغییر اسم دیتابیس و جدول مورد نظر جواب میده
اشکال کارت جای دیگست که اگه کد را بفرستی بهتر میشه کمک کرد
و نکته دیگه اینکه ما اینجاییم تا به هم کمک کنیم
البته استفاده از دکمه تشکر هم میتونه مفید باشه :بامزه: :چشمک:

موفق باشید
مهدی کیانی

مهدی رحیم زاده
شنبه 09 تیر 1386, 22:20 عصر
اینم کد برنامه ...

kiani.mehdi
یک شنبه 10 تیر 1386, 06:54 صبح
اینم کد برنامه ...

برنامه هیچ مشکلی نداره وکار میکنه
یه بار دیگه برنامت را ReBuild کن
اگه حل نشد مطمئنا مشکل در جای دیگری از برنامه ات یعنی پروژه اصلیت وجود داره

موفق باشید
مهدی کیانی
اینم یه عکس از اجرای برنامه
میبینی که داده ها درست هستند