PDA

View Full Version : سوال: خطای Invalid object name عجیب در sql Express



mshirzad68
سه شنبه 02 اسفند 1390, 02:54 صبح
سلام دوستان و اساتید عزیز
خسته نباشید
دوستان من یک دیتا بیس جدید در sql express ایجاد کردم و همون ابتدا یک جدول در اون ایجاد کردم
وقتی در برنامه ام از همون جدولی که ابتدا ایجاد کرده ام استفاده میکنم هیچ مشکلی نیست
امّا اگر از جدول هایی که بعد از آن جدول اوّل و باز کردن دوباره دیتا بیس ایجاد کردم در برنامه ام استفاده کنم؛ این خطا پیش می آید : ( به عنوان مثال ) : Invalid object name 'tbl_users'.
در صورتی که جدول tbl_users ساخته شده و در دیتابیس موجود میباشد.
خوشحال میشم اگه راهنماییم کنید و بگویید که چگونه این مشکل حل میشود ؟

با سپاس.

zarrinnegar
سه شنبه 02 اسفند 1390, 08:25 صبح
شما وقتی داخل ویژوال دیتابیس رو میسازید چند تا مشکل معمولا براتون پیش میاد
اول اینکه تغییراتی که بعدا به دیتابیس وارد میکنید توسط ویژوال تشخیص داده نمیشه و برای اینکه آخرین تغییرات رو براتون بیاره باید توی قسمت server explorer روی نام دیتابیس راست کلیک کنید و کانکشن رو ببندید
به محض بسته شدن کانکشن ، اطلاعات دیتابیس ویژوال بروز میشه
دومین مشکل اینه که زمان اجرا اگر دیتایی رو وارد کنید توی دیتابیس ذخیره نمیشه و فقط موقع اجرا میتونید ببینید و بعدش حذف میشه
سوم اینکه چون خود ویژوال فایل رو ایجاد کرده بنابراین توی sql بقول معروف Attach نمیشه و برای استفاده توی کامپیوتر دیگه باید اتچ بشه (البته اگر با sql server هم میساختی توی کامپیوتر دیگه باید اتچ بشه ولی فرقش اینه که توی sqlserver همیشه فایل توی حافظه هست و سرعت اجرای برنامه بالاتره )

mshirzad68
سه شنبه 02 اسفند 1390, 10:56 صبح
شما وقتی داخل ویژوال دیتابیس رو میسازید چند تا مشکل معمولا براتون پیش میاد
اول اینکه تغییراتی که بعدا به دیتابیس وارد میکنید توسط ویژوال تشخیص داده نمیشه و برای اینکه آخرین تغییرات رو براتون بیاره باید توی قسمت server explorer روی نام دیتابیس راست کلیک کنید و کانکشن رو ببندید
به محض بسته شدن کانکشن ، اطلاعات دیتابیس ویژوال بروز میشه
دومین مشکل اینه که زمان اجرا اگر دیتایی رو وارد کنید توی دیتابیس ذخیره نمیشه و فقط موقع اجرا میتونید ببینید و بعدش حذف میشه
سوم اینکه چون خود ویژوال فایل رو ایجاد کرده بنابراین توی sql بقول معروف Attach نمیشه و برای استفاده توی کامپیوتر دیگه باید اتچ بشه (البته اگر با sql server هم میساختی توی کامپیوتر دیگه باید اتچ بشه ولی فرقش اینه که توی sqlserver همیشه فایل توی حافظه هست و سرعت اجرای برنامه بالاتره )


سلام
واقعن ممنونم بابت وقتی که گذاشتید و پاسخ کاملی که نوشتید .
کانکشن رو close کردم باز هم به روز نشد .
تا حالا دیتابیس در sql server بوده امّا برای این که واس یه کاربر عادی یکم سخته که بخواد اتچ کردن و... رو یاد بگیره فکر کردم که بهتره دیتا بیس رو تغییر بدم و از express استفاده کنم که خودش اون رو اتچ کنه با این کانکشن استرینگ :


@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SepidDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

به نظرتون از دیتا بیس اکسس استفاده کنم که نیاز به اتچ کردن نداشته باشه ؟
چطور باید برنامه رو پابلیش کنم که کاربر فقط برنامه رو نصب و به راحتی اجرا کنه بدون هیچ مشکلی ؟
کجا باید دیتا بیس رو کپی کنم ؟
کانکشن استرینگ اون چی ؟