PDA

View Full Version : سوال: آپدیت دیتابیس سایت با دیتابیس نرم افزار



zahra6377
پنج شنبه 30 آذر 1391, 20:47 عصر
سلام
من یه نرم اقزار نوشتم با سی شارپ،حالا میخوام با زدن یه دکمه دیتابیس نرم افزار با دیتابیس سایت آپدیت بشه،ینی مخوام هم دیتابیس نرم افزار بره روی سایت و هم دیتابیس نرم افزار با دیتا بیس سایت آپدیت بشه،میشه استادای گرامی راهنماییم کنن که چطوری این کار رو بکنم؟
ممنون

mousa1992
جمعه 01 دی 1391, 04:13 صبح
سلام
برای اپدیت دیتابیس نرم افزار بر اساس دیتابیس موجود در سایت:(نرم افزاری که رو سیستم شما هست ممکنه همیشه به اینترنت متصل نباشه)
برای این کار شما میتونید یک فایل xml داشته باشید روی سایت و رکورد های جدیدی که ثبت میشه و یا اپدیت ها رو توی اون فایل ذخیره کنین و با وصل شدن نرم افزارتون به اینترنت اطلاعات فایل xml رو بخونه و خودتشو مطابق دیتابیس سایت اپدیت کنه
برای عمل عکسش هم به همین روش میشه عمل کرد
موفق باشید

samadblaj
جمعه 01 دی 1391, 12:38 عصر
سلام
برای اپدیت دیتابیس نرم افزار بر اساس دیتابیس موجود در سایت:(نرم افزاری که رو سیستم شما هست ممکنه همیشه به اینترنت متصل نباشه)
برای این کار شما میتونید یک فایل xml داشته باشید روی سایت و رکورد های جدیدی که ثبت میشه و یا اپدیت ها رو توی اون فایل ذخیره کنین و با وصل شدن نرم افزارتون به اینترنت اطلاعات فایل xml رو بخونه و خودتشو مطابق دیتابیس سایت اپدیت کنه
برای عمل عکسش هم به همین روش میشه عمل کرد
موفق باشید
سلام دوست عزیز میشه این روش رو بیشتر توضیح بدید...

من یه برنامه دارم مینویسم که اطلاعات زیادی (نزدیک به 5 فرم) رو از یه کاربر میگیره و باید در دیتابیس ثبت کنه...

حالا سوالی که برام پیش اومده بهتره اطلاعات رو مستقیم روی دیتابیس ثبت کنم یا در فایل xml بریزم و .... کدوم روش برای من بهینه تره؟

در ضمن اداره کلا به اینرنت متصل هستش...

mousa1992
جمعه 01 دی 1391, 23:59 عصر
سلام دوست خوبم
برای این کار ی فایل xml که حاوی اطلاعات جدید اضافه شده به دیتابیس هست رو دارید و میشه دوتا childNode برای بخش اپدیت ها و رکوردهای جدید اضافه کرد(که نیازی به سرچ توی دیتابیس و تعیین اینکه کدوم رکورد مربوط به اپدیدت و کدوم رکورد جدید هست نباشه) و با تغییر در دیتابیس توی فایل xml نیز همزمان اعمال بشه و برنامه شما میشه براش مثلا ی button قرار داد که هر وقت کاربر خواست دیتابیسشو اپدیت کنه

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

اگه بخواین مستقیما اطلاعات جدید اضافه شده رو به دیتابیس برنامه پاس بدین ممکنه مشکلاتی بوجود بیاد و اینترنت ما هم که خوشبختانه به دلیل سرعت بالا و بدون نقص بودنش نمیشه بهش اعتماد کرد! _ پس به نظرم درون ی فایل ذخیره بشه و هر وقت که خواستن دیتابیس برنامشونو اپدیت کنن بهتره

موفق باشی

zahra6377
شنبه 02 دی 1391, 12:23 عصر
ممنون از شما دوست عزيز
من كلا توي اين مود مبتدي ام،ميشه لطفا كامل توضيح بدب و مثال هم واسم بذارين،من اصلا از xml هيچي نميدونم و الان شديدا به اين كدا نياز دارم.
ممنونم

سلام دوست خوبم
برای این کار ی فایل xml که حاوی اطلاعات جدید اضافه شده به دیتابیس هست رو دارید و میشه دوتا childNode برای بخش اپدیت ها و رکوردهای جدید اضافه کرد(که نیازی به سرچ توی دیتابیس و تعیین اینکه کدوم رکورد مربوط به اپدیدت و کدوم رکورد جدید هست نباشه) و با تغییر در دیتابیس توی فایل xml نیز همزمان اعمال بشه و برنامه شما میشه براش مثلا ی button قرار داد که هر وقت کاربر خواست دیتابیسشو اپدیت کنه

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

اگه بخواین مستقیما اطلاعات جدید اضافه شده رو به دیتابیس برنامه پاس بدین ممکنه مشکلاتی بوجود بیاد و اینترنت ما هم که خوشبختانه به دلیل سرعت بالا و بدون نقص بودنش نمیشه بهش اعتماد کرد! _ پس به نظرم درون ی فایل ذخیره بشه و هر وقت که خواستن دیتابیس برنامشونو اپدیت کنن بهتره

موفق باشی

samadblaj
شنبه 02 دی 1391, 13:04 عصر
منم شدیدا به این کد نیاز دارم خیلی کمک بزرگی بهم میکنید اگه یه مثال بزنید...
ممنونم از شما

mousa1992
یک شنبه 03 دی 1391, 09:28 صبح
سلام عزیزان
ببخشید دیر جواب میدم
متاسفانه کد اماده برای این کار ندارم_ کار مشکلی نیست ،هر رکوردی رو که توی دیتابیس قراره ثبت بشه همزمان در یک فایل ذخیره میکنید و توی برنامتون فایل رو میخونید اطلاعات جدید رو توی دیتابیس برنامه ثبت میکنید


من كلا توي اين مود مبتدي ام،ميشه لطفا كامل توضيح بدید و مثال هم واسم بذارين،من اصلا از xml هيچي نميدونم و الان شديدا به اين كدا نياز دارم.کار کردن با فایل های xml سادست کافیه ی نمونه کد رو ببینید و البته کمی در مورد ساختار xml
فرمت xml شبیه html است با این تفاوت که تگ های اونو خودتون تعریف میکنید _ یجور فایل متنیه . اگه با xml مشکل داری از ی دیتابیس جداگونه استفاده کن برای ثبت تغییرات ( کار کردن با فایل از سرعت بالاتری برخورداره)
موفق باشید

zahra6377
یک شنبه 03 دی 1391, 10:35 صبح
،هر رکوردی رو که توی دیتابیس قراره ثبت بشه همزمان در یک فایل ذخیره میکنید و توی برنامتون فایل رو میخونید اطلاعات جدید رو توی دیتابیس برنامه ثبت میکنید


ممنون
اما ميشه بگيد منظورتون از اين حرف چيه؟چطوري؟با چه فرمتي؟خيلي برام مهمه!

zahra6377
سه شنبه 05 دی 1391, 10:33 صبح
خواهش ميكنم يكي بياد كمكم كنه خيلي گيرم.

mousa1992
پنج شنبه 07 دی 1391, 04:09 صبح
دوست عزیز معذرت میخوام که دیر شد
توی کد نویسی نمیتونم کمکی کنم چون کد اماده ای ندارم
دوست عزیز دقیقا همون اطلاعاتی که رکورد جدید توی دیتابیس ثبت میکنه همون هارو باید یجای دیگه هم ذخیره کنید که مشخص بشه این اطلاعات جدید اضافه شده و برای اپدیت کردن برنامتون فقط کافیه به اون فایلی که اطلاعات جدید توش ثبت میکنید سر بزنید و بعد از گرفتن اطلاعات جدید اونو پاک میکنید که با مراجعه بعدی رکورد تکراری ذخیره نشه
موفق باشید

zahra6377
پنج شنبه 07 دی 1391, 12:37 عصر
ممنون که جواب دادید خوب ولی یه سوال کجا و با چه فرمتی ؟اینجا واسم گنگه.

mousa1992
پنج شنبه 07 دی 1391, 13:11 عصر
روش کار به این صورته :
شما باید اطلاعات وردری جدید رو به صورتی مشخص کنید . پیشنهاد من اینه که یک فایل xml داشته باشین و یا یک فایل متنی و یا حتی میتونید یک دیتابیس دقیقا با همان شکل دیتابیس اصلی سایت داشته باشین که فقط رکورد های جدید توی اون ثبت میشه و با گرفتن رکورد جدید و انتقال اون به برنامتون رکورد رو از دیتابیس حذف میکنید و این فایل یا دیتابیس کنار فایل های سایت شما قرار داره یجایی که بهش دسترسی داشته باشین

zahra6377
پنج شنبه 07 دی 1391, 13:15 عصر
کدومش بهتره و سرعت بیشتری داره؟

mousa1992
پنج شنبه 07 دی 1391, 13:20 عصر
قطعا با فایل ها کار کنی سرعت بالاتری داره
فیلدهای دیتابیستون از چه نوع هایی هست ایا فایل و عکس هم توی دیتابیس ذخیره میکنید ؟
اگر فیلد هایی دارید که نمیشه اونا رو توی یک فایل ذخیره کرد فقط شما فیلد کلید اصلی مربوط به رکورد جدید رو توی یک فایل ذخیره کنید و مقادیر فایل رو میخونید و بر اساس اون فیلد کلید اصلی رکورد رو توی دیتابیس سایت جستجو میکنی مقادیرشو میگیری و به برنامه ارسال میکنی

zahra6377
پنج شنبه 07 دی 1391, 13:23 عصر
خیلی کم بعضی مواقع داخلش عکس و فیل هم هست که خیلی کم پیش میاد

mousa1992
پنج شنبه 07 دی 1391, 13:26 عصر
خب پس فیلد کلید اصلی رو توی یک فایل ذخیره کن و با فشردن دکمه اپدیت دیتابیس، نرم افزار میره اطلاعات فایل رو میخونه و توی دیتابیس سایت جستجو انجام میده و اطلاعات مربوط به اون رکورد ها رو وارد دیتابیس خودش میکنه
موفق باشی

zahra6377
پنج شنبه 07 دی 1391, 13:29 عصر
میشه موقع اجراش اگه مشکلی پیش اومد با پیام خصوصی ازتون بپرسم.

فرید نجفلو
جمعه 08 دی 1391, 02:22 صبح
سلام
این همه اینجا بحث شده اما یک نفر هم حتی نیومده حداقل یه اسمی از Web Service یا WCF ببره!!!
تو این مسائل اینکه شما بیاید یه فایل XML یا متنی بنویسید شاید زحمتی که برای این می کشید بیشتر از خود برنامه باشه!

شما اطلاعاتتون رو روی یه دیتابیس آف لاین کنار برنامه ذخیره تا به اینترنت وصل بشید بعد:

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

روش حرفه ای تر: شما روی سایت یه وب سرویس و خیلی بهتر از اون WCF پیاده سازی می کنید و کار ها رو به اون می سپرید
برای مثال یه تابع روی سایت به اسم SnycData داریدتوی برنامه یه سلکت ساده از دیتابیس می گیرید و دیتاستش رو می فرستید به این تابع این تابع هم دیتاست رو می گیره جدول هاش رو تو دیتابیس اعمال می کنه و یه bool واستون بر می گردونه
یا اگه خواستید یه توابع دو طرفه می سازید (بسته به این هست که اطلاعات رو برنامه دستکاری میشه یا رو سایت یا هر دو)

نکته:
یدتون باشه تو قسمت رکورد های حذف شده به مشکل بر نخورید ، سعی کنید لیست آی دی های حذف شده رو هم نگه دارید تا بتونید اونا رو تو سرور سایت هم حذف کنید
مگر اینکه قصد داشته باشید کل اصلاعات با هم جایگذین بشن!


خلاصه تمام تلاشتون رو بکنید با وب سرویس یا WCF حلش کنید (مطمئن تر و حرفه ای تر)

samadblaj
دوشنبه 11 دی 1391, 19:27 عصر
آقا فرید اگه میشه لینک یه آموزش قرار بدید من به این مورد خیلی نیاز دارم ممنونتون میشم ... لطفا یه جوری کمکم کنید.