PDA

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



علی فتحی
سه شنبه 21 خرداد 1392, 16:04 عصر
سلام:
من یک برنامه حقوق و دستمزد طراحی کردم برای پیوند از ویزارد ویژوال استادیو2010 استفاده کردم. روی سیستم خودم مشکلی نداره ولی هنگام نصب روی سیستم دیگه ارور quaryمیدهد.مسیر نصب بانک هم درست است.
سوال:
راههای جلوگیری از این مشکل چیست؟ ضمنابانک اطلاعاتی اکسس می باشد.
2.حجم سورس برنامه ام 89 مگابایته چطور میتونم توی سایت برنامه نویس برای حل مشکلم سورسو به اشتراک بگذارم.

علی فتحی
سه شنبه 21 خرداد 1392, 17:23 عصر
لطفا بی تفاوت نباشید به جواب فوری نیازمندم

veniz2008
سه شنبه 21 خرداد 1392, 18:33 عصر
سلام.
به نظرت با این توضیحاتی که دادی کسی میتونه کمکی کنه؟
حداقل یک عکس از خطا بگیر و اینجا بزار.
منظورت از پیوند همون join بین جداول هست؟
quary یعنی چی؟. منظورت Query هست؟
ممکنه بخاطر کانکشن استرینگ باشه که در سیستم دوم با سیستم اول متفاوت باشه.
آیا sql مقصد و مبدا از یک ورژن هستن؟

علی فتحی
چهارشنبه 22 خرداد 1392, 17:31 عصر
مشکا اپلود دارم

veniz2008
چهارشنبه 22 خرداد 1392, 17:59 عصر
مشکا اپلود دارم
منظورتون اینه که نمیتونید عکسی از خطا رو قرار بدید؟
نیازی به قرار دادن سورس نیست چراکه طبق گفته خودتون شما ویزاردی کار کردی پس گذاشتن س.رس دردی رو دوا نمیکنه.
اگر با آپلود عکس در این سایت مشکل دارید!(قاعدتا نباید مشکلی باشه چون من چند ساله دارم عکس اپلود میکنم) میتونید عکس رو بر روی یکی از هاست ها قرار بدید و لینکش رو اینجا بزارید.

علی فتحی
شنبه 25 خرداد 1392, 17:32 عصر
نه پیامی که میده معنیش اینه برنامه با بانک اطلاعاتی وصل نشده است.ولی روی سیستم خودم مشکلی نداره .داداش من منظور کلی من اینه برای حل مشکل برنامه هایی که روی سیستم خودمون تست میشه ولی روی سیستمهای دیگه خطا میده چه باید کرد. کل خطاهای احتمالی رو میگم .

علی فتحی
شنبه 01 تیر 1392, 17:20 عصر
اینم عکس ارور.البته روی لب تاب خودم هیچ مشکلی نداره ولی وقتی جای دیگه نصب میکنم این ارورو برای ثبت و حذف و ویرایش میده. منظورم از پیوند ارتباط با بانک اطلاعاتیست .105986

علی فتحی
یک شنبه 02 تیر 1392, 00:04 صبح
لطفا جواب دهید

veniz2008
یک شنبه 02 تیر 1392, 04:24 صبح
واسه select هم همین مشکل رو داری؟
اگه آره به احتمال خیلی زیاد مشکل از کانکشن استرینگ هست و با سیستم مقصد سازگار نیست. یکی از کدهاتو مثلا کد حذف رو بزار.

مهدی هادیان2
یک شنبه 02 تیر 1392, 07:09 صبح
بسم الله الرحمن الرحیم
با سلام
فکر نمیکنم مشکل از بانک باشه؛ چراکه در حال حاضر داره اطلاعات تو دیتا گرید نمایش میده.
لطفا عکسی از Details خطا هم بذارید.
موفق باشید.

Mousavmousab
یک شنبه 02 تیر 1392, 10:24 صبح
سلام

دوستان تو رو خدا یک مقدار وقت بگزارید برین سی شارپ را یک مقدار خوب تر بررسی کنید (بویژه خطا یابی ها رو)
آقای فتحی خودتون بگین ، خوب نیود که شما دستورات را با یک Try catch کنترل می کردین ؟ آخه توی شرکت مایکروسافت اشتباه کردند که این بخش را واسه سی شارپ در نظر گرفتند ؟
لازم نیست شما دوباره چرخ را اختراع کنید ، منظورم اینه این پنجره خطا داره از طرف سیستم عامل می آد نه از سی شارپ که به شما اطلاعات دقیق و مفیدی بده ، شما بیا از یک try catch ساده استفاده بکن، هم مشکلی شما ا تحدید نمی کنه و هم اینکه به راحتی مشکل راhandle می کنی.
آقای فتحی عزیز : به نظر شما این Exception ها را مایکروسافت واسه چی گذاشت ؟ (اصلاٌ از اسمش معلومه استثنا)اگه خوب دقت کنی می بینی توی تصویر خطا سیستم عامل میگه Unhanded exception اتفاق افتاد ، یعنی شما به عنوان برنامه نویس نتونستی خطای برنامه را در زمان کد نویسی کنترل کنی الان این مشکل در ران تایم خودشو نشون کاربر داده و باز تکرار می کنم این خطا را سیستم عامل داره نشون میده.

گیریم شما این خطا را بررسی کردی ، قسمت های دیگه برنامه ات چی ؟ وایسادی بعد چند روز دیگه گزارش کنند که دم به دیقه فلان جای برنامه شما ارور میده ؟
از همین الان یه فکری واسه برنامه ات و برنامه هایی که می نویسی بکن چون یک برگه کاغد سفید خیلی با ارزش تر از یک برگه کاغد نوشته نا کارآمد است.
موفق و سر بلند باشید

علی فتحی
یک شنبه 02 تیر 1392, 21:10 عصر
دوستانی که این تاپیک را مشاهده میکنند عرض کنم برنامه رو در مسیری غیر از پیشفرض نصب.درایو d:نصب کردم مشکلم حل شد.باتشکر از همه دوستانی که به نوعی جواب دادند

java_365
دوشنبه 03 تیر 1392, 00:08 صبح
دوستانی که این تاپیک را مشاهده میکنند عرض کنم برنامه رو در مسیری غیر از پیشفرض نصب.درایو d:نصب کردم مشکلم حل شد.باتشکر از همه دوستانی که به نوعی جواب دادند

آقا این مشکل رو من هم داشتم کسی میدونه علت چیه ؟ منم توی سیستم خودم توی درایو c که پیشفرض هست درست عمل میکنه اما داخل سیستم دیگه نه باید توی درایو دیگه ای نصبش کرد
در ضمن بانک اکسس مشکلی نداره فقط اسکیوال مشکل داره

vapa_71
دوشنبه 03 تیر 1392, 01:14 صبح
یه نفر دیگه هم اینجور تایپیکی زده بود
دوستان مشکل چی میتونه باشه ؟

مهدی هادیان2
دوشنبه 03 تیر 1392, 01:52 صبح
بسم الله الرحمن الرحیم
با سلام
لطفا عکسی از Details خطا هم بذارید.
موفق باشید.

roolinjax
دوشنبه 03 تیر 1392, 11:09 صبح
آقا این مشکل رو من هم داشتم کسی میدونه علت چیه ؟ منم توی سیستم خودم توی درایو c که پیشفرض هست درست عمل میکنه اما داخل سیستم دیگه نه باید توی درایو دیگه ای نصبش کرد
در ضمن بانک اکسس مشکلی نداره فقط اسکیوال مشکل داره

دلیل مشکل شما آدرس دهی ثابت به بانک اطلاعاتی خودتونه
باید از آدرس دهی نصبی استفاده کنید برای کانکشن استرینگتون
اونوقت دیگه مهم نیست از کدوم درایو یا کدوم مسیر اجرا بشه

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

vapa_71
دوشنبه 03 تیر 1392, 11:28 صبح
دلیل مشکل شما آدرس دهی ثابت به بانک اطلاعاتی خودتونه
باید از آدرس دهی نصبی استفاده کنید برای کانکشن استرینگتون
اونوقت دیگه مهم نیست از کدوم درایو یا کدوم مسیر اجرا بشه

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

میشه بیشتر توضیح بدین

roolinjax
دوشنبه 03 تیر 1392, 11:36 صبح
فایل بانک اطلاعاتی اکسس رو در اجرای برنامه قرار بدین (پوشه ی Debug)
بعد از این کار توی کانکشن استرینگ بصورت زیر آدرس دهی کنید :
objCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\dbName.mdb";

vapa_71
دوشنبه 03 تیر 1392, 11:41 صبح
فایل بانک اطلاعاتی اکسس رو در اجرای برنامه قرار بدین (پوشه ی Debug)
بعد از این کار توی کانکشن استرینگ بصورت زیر آدرس دهی کنید :
objCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\dbName.mdb";

مشکل دوستان با بانک SQL هست در اون مورد توضیح بدین

roolinjax
دوشنبه 03 تیر 1392, 11:55 صبح
خوب اس کیو ال که دیگه بدون مشکل وقتی توی sql server management اتچ بشه از هر مسیری با رشته ی زیر اتصال برقرار میشه بهش :
"Data Source=.\sqlexpress;Initial Catalog=dbName;Integrated Security=True"
خیلی راحت
توضیح :
dbName نام بانک اس کیو ال شماست که به ماشین اس کیو ال اتچ شده
sqlexpress\. همون نام instance هست که باهاش به Management اس کیو ال وارد شدین یا اصطلاحا کانکت شدین (که ممکنه مقادیری دیگه ای مثل . ، (local) , .... باشه)

java_365
دوشنبه 03 تیر 1392, 12:04 عصر
خوب اس کیو ال که دیگه بدون مشکل وقتی توی sql server management اتچ بشه از هر مسیری با رشته ی زیر اتصال برقرار میشه بهش :
"Data Source=.\sqlexpress;Initial Catalog=dbName;Integrated Security=True"
خیلی راحت
توضیح :
dbName نام بانک اس کیو ال شماست که به ماشین اس کیو ال اتچ شده
sqlexpress\. همون نام instance هست که باهاش به Management اس کیو ال وارد شدین یا اصطلاحا کانکت شدین (که ممکنه مقادیری دیگه ای مثل . ، (local) , .... باشه)

با سلام خدمت شما دوست گرامی و تشکر بابت جوابتون
من از روش LINQ برای اتصال به بانک استفاده میکنم و نیازی به ساخت کانکشن نیست اما بازم همین مشکل رو داشتم علت چی میتونه باشه ؟

roolinjax
دوشنبه 03 تیر 1392, 12:12 عصر
با سلام خدمت شما دوست گرامی و تشکر بابت جوابتون
من از روش LINQ برای اتصال به بانک استفاده میکنم و نیازی به ساخت کانکشن نیست اما بازم همین مشکل رو داشتم علت چی میتونه باشه ؟

با عرض پوزش من Linq کار نکردم ولی مطمئنا فایل LinqContent که داخلش آبجکت ها و متدهای مورد نظرتون رو اضافه می کنید یه ارتباطی با بانک داره که باید اون رو اصلاح کنید که آدرس رو بصورت نسبی بخونه
وقتی از روی شی LinqContent نمونه می گیرید خصوصیتی به اسم کانکشن یا کانکشن استرینگ یا چیزی شبیه به این نداره که بشه دستکاریش کرد ؟
ولی در کل فکر می کنم چون لینک بیشتر ویزاردی کارو انجام میده پس ارتباطش هم باید از محل ویزارد تغییر کنه

در انتها بازم میگم اطلاعات من در مورد لینک اصلا قابل استناد نیست !!!!!!

pcseven
دوشنبه 03 تیر 1392, 16:34 عصر
خوب اس کیو ال که دیگه بدون مشکل وقتی توی sql server management اتچ بشه از هر مسیری با رشته ی زیر اتصال برقرار میشه بهش :
"Data Source=.\sqlexpress;Initial Catalog=dbName;Integrated Security=True"
خیلی راحت
توضیح :
dbName نام بانک اس کیو ال شماست که به ماشین اس کیو ال اتچ شده
sqlexpress\. همون نام instance هست که باهاش به Management اس کیو ال وارد شدین یا اصطلاحا کانکت شدین (که ممکنه مقادیری دیگه ای مثل . ، (local) , .... باشه)

این واسه زمانی هست که شما دیتابیس را به سرور Attach کرده اید. اما اگر دیتابیس بصورت پرتابل در کنار فایل اصلی برنامه قرار دارد و هنگام اجرای برنامه به نسخه در حال اجرای اس کیو ال Attach می شود، باید ConnectionString چیزی شبیه این باشد:


Data Source=(LocalDb)\v11.0;Initial Catalog=dbName;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\dbN ame.mdf

در واقع |DataDirectory| همان مسیر نسبی است که باید از آن استفاده شود.

pcseven
دوشنبه 03 تیر 1392, 16:37 عصر
با سلام خدمت شما دوست گرامی و تشکر بابت جوابتون
من از روش LINQ برای اتصال به بانک استفاده میکنم و نیازی به ساخت کانکشن نیست اما بازم همین مشکل رو داشتم علت چی میتونه باشه ؟

باز هم فرقی نمی کند. LINQ هم از یک Connection String استفاده می کند که معمولاً در app.config یا web.config نگهداری می شود.

roolinjax
دوشنبه 03 تیر 1392, 19:09 عصر
این واسه زمانی هست که شما دیتابیس را به سرور Attach کرده اید. اما اگر دیتابیس بصورت پرتابل در کنار فایل اصلی برنامه قرار دارد و هنگام اجرای برنامه به نسخه در حال اجرای اس کیو ال Attach می شود، باید ConnectionString چیزی شبیه این باشد:


Data Source=(LocalDb)\v11.0;Initial Catalog=dbName;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\dbN ame.mdf

در واقع |DataDirectory| همان مسیر نسبی است که باید از آن استفاده شود.

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

roolinjax
دوشنبه 03 تیر 1392, 19:11 عصر
این واسه زمانی هست که شما دیتابیس را به سرور Attach کرده اید. اما اگر دیتابیس بصورت پرتابل در کنار فایل اصلی برنامه قرار دارد و هنگام اجرای برنامه به نسخه در حال اجرای اس کیو ال Attach می شود، باید ConnectionString چیزی شبیه این باشد:


Data Source=(LocalDb)\v11.0;Initial Catalog=dbName;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\dbN ame.mdf

در واقع |DataDirectory| همان مسیر نسبی است که باید از آن استفاده شود.

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