PDA

View Full Version : چگونه بانک را ضمیمه شده به برنامه را به هارد منتقل کنم؟



alih988
شنبه 20 بهمن 1386, 22:20 عصر
به نام خدا
سلام ، دوستان اگر قبل از اجرای برنامه بخواهید بانک اطلاعاتی برنامه را به هارد منتقل کنید ، چطور باید این بانک را به پروژه اضافه کرد که هنگام اجرای برنامه از آن آدرس به هارد منتقل کنمش !
البته من با طرز کپی کردم مشکل ندارم ، فقط چیزی که مهم است این است که فایل های اضافه شده به پروژه کجا هستند که آنها را به عنوان Source در نظر بگیرم
برای مثال من 3 بانک رو با استفاده از existing items به پروژه اضافه کردم ، ولی چه طور اینها رو به هارد کپی کنم ؟ لطفا راهنمایی کنید!

ghafoori
یک شنبه 21 بهمن 1386, 09:17 صبح
دوست عزیز شما سوال شما واضح نیست مگر بانک شما داخل هارد کامپیوتر شما نیست شما دقیقا چکار می خواهید انجام دهید از بانکتان بک اپ بگیرید بیشتر توضیح دهید

alih988
یک شنبه 21 بهمن 1386, 10:34 صبح
جناب غفوری ، برنامه من نیاز دارد تا جهت خواندن و نوشتن اطلاعات ، بانک خود را در درایور d و در پوشه ای به نام library پیدا کند ، و من مجبورم تا با کپی و paste کردن پوشه مذکور بانک را در مسیر خودش قرار دهم ، من می خواهم همین که برنامه اجرا شد و اگر بانک در مسیر مورد نظر موجود نبود ، بانک را به درایو d و پوشه ی خاصی (مثلا library ) منتقل کند ،
در شکل بالا من 3 عدد بانک به پروژه ام اضافه کرده ام ، و می خواهم این 3بانک را هنگامی که برای اولین بار برنامه دارد اجرا می شود به مسیر مورد نظر منتقل کند! همین!

ghafoori
یک شنبه 21 بهمن 1386, 16:25 عصر
خوب چرا این کار را داخل ستاپ برنامه انجام نمی دهید تا فایل ها هنگام نصب در محلی که شما یا کاربر تعیین می کنید نصب شود

alih988
یک شنبه 21 بهمن 1386, 17:10 عصر
اگر کمی بیشتر توضیح بدهید ممنون میشم

saeghe3000
یک شنبه 21 بهمن 1386, 23:50 عصر
شما باید یه Setup Project بسازی و اونجا همین پروژه برنامه ای که روش کار کردی رو اضافه کنی
بعد اونجا یه قسمت داره که فایل هایی که می خوای موقع نصب برنامه تو کامپیوتر طرف ریخته بشه رو Add می کنی . بعد وقتی که Build کنی یه فایل نصب برات میسازه که اونو نصب کنی همه چی حله

البته این راه حل کلیه که کلی توش مسئله وجود داره

مثلا من نمی دونم اگه مثلا فایل بانک وجود داشته باشه اونو Replace می کنه یا نه
تو همین فروم هم یه پست زدم کسی جوابمو نداد ( کسی میدونه همین جا جواب بده )

saman_itc
دوشنبه 22 بهمن 1386, 13:52 عصر
شما میتونی موقعی که اولین فرم برنامت لود میشه توش یه کد بنویسی که چک کنه تو اون مسیر این فایل وجود داره؟و اگه نداره کپی کنه به همین راحتی .اگه مشکل دری من در خدمت

alih988
دوشنبه 22 بهمن 1386, 14:23 عصر
دوستان من با تابع exist چک می کنم ، و متوجه میشم که پوشه یا فایل مورد نظر در مسیر موجود نیست ، حالا از کجا بدونم که فایل بانک اطلاعاتی من کجاست که آن را از آنجا کپی کنم ؟
من با استفاده از publish خود vs فایل setup میسازم ، و نمیدونم چطور مسیری را که کاربر دارد از آن setup را اجرا می کند بدست بیاورم ، در vb6 یک شی به نام app بود که میشد از تایع path در آن مسیر جاری را پیدا کرد ، جایگزین این app در .net چه چیزی هست ؟

maryam_vb
دوشنبه 22 بهمن 1386, 14:53 عصر
فقط چیزی که مهم است این است که فایل های اضافه شده به پروژه کجا هستند که آنها را به عنوان Source در نظر بگیرم

bin\debug

در vb6 یک شی به نام app بود که میشد از تایع path در آن مسیر جاری را پیدا کرد ، جایگزین این app در .net چه چیزی هست ؟
این دو کد مسیر جاری برنامه رو نشون میدن.


Application.StartupPath()
یا
My.Application.Info.DirectoryPath

saman_itc
سه شنبه 23 بهمن 1386, 00:04 صبح
با توجه به اینه maryam_vb (http://barnamenevis.org/forum/member.php?u=45166) کاملا درست دستورشون ولی از یه ثابت هم میشه استفاده کرد

تو مسیر جاری که برنامه داره اجرا میشه حتی بعد نصب
شما چه طوری با بانک ارتباط بر قرار می کنی؟
مگه مهمه کاربر کجا آدرس بده
به این نگاه کن.مثلا مسیر بانکه


PublicConst er AsString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=""Shali.mdb"""

امید وارم مطالب من هم بدردت خورده باشه

alih988
سه شنبه 23 بهمن 1386, 00:34 صبح
آقا من هنوز متوجه نشدم چه باید کرد ! فایل را از کجا به مسیر مورد نظرم کپی کنم ؟

من با استفاده از دستور maryam_vb امتحان کردم یه آدرس طول و دازی به من داد و شاید ربطی هم زیاد نداشته باشه!

saman_itc
سه شنبه 23 بهمن 1386, 00:51 صبح
اینم یه مثال اجرایی همش بدبردت نمی خوره .خواستم ببینی جه جوریه




PrivateSub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click

SaveFileDialog.Title = "لطفا مسیر فایل پشتیبان را انتخاب کنید "
SaveFileDialog.Filter = "DateBase Backup File(*.mpc)|*.mpc"
SaveFileDialog.OverwritePrompt = True
SaveFileDialog.RestoreDirectory = True
SaveFileDialog.ShowHelp = False
SaveFileDialog.ValidateNames = False

If ((Windows.Forms.DialogResult.Cancel) = (SaveFileDialog.ShowDialog)) Then
Msgbox_Custom("شما هیچ پشتیبانی را برای برنامه تهیه نکرده اید.آیا مایل به تهیه پشتیبانی هستید؟ ", 2, 1, "هشدار تهیه پشتیبانی ")
If Msgbox_Custom_Result = 1 Then
ToolStripMenuItem1_Click(sender, e)
Else
Return
EndIf
Else
filen = SaveFileDialog.FileName + ".Mpc"
filep = System.Windows.Forms.Application.StartupPath + "\TelBank.mdb"
FileCopy(filep, filen)
EndIf



filep = System.Windows.Forms.Application.StartupPath + "\TelBank.mdb"
FileCopy(filep, filen)

alih988
سه شنبه 23 بهمن 1386, 12:16 عصر
filep = System.Windows.Forms.Application.StartupPath + "\TelBank.mdb"


اول شما بفرمایید بنده چطوری فایلم را در مسیر فوق (startup) قرار دهم ، در کد بالا شما آدرسی را به عنوان سورس در نظر گرفتید ، خوب پس فایل مورد نظر شما در مسیر موجود است ، ولی من هیچ آدرسی از فایلم ندارم که آن آدرس را بدهم!

saman_itc
سه شنبه 23 بهمن 1386, 14:52 عصر
شما از چه روشی برای ضمیمه کردن بانک تو برنامه خودتون استفاده میکنید؟
بهترین روش که دینامیک هم هست استفاده از مسیر استارت
مثلا \PhonBook\PhonBook\bin\Debug

saghi63
سه شنبه 20 فروردین 1387, 12:46 عصر
سلام، شما ها چرا اینقدر پیچیدش کردید ، اگه متوجه شده باشم ، شما می خواهید یه بانک و به مسیر خاصی ببرید. خوب چرا این کار و می کنید؟ در پوشه برنامه خودتون یه پوشه به نام database قرار بدید و بعد بانک را در اون قرار بده ... بعد واسه مسیر دادن در برنامه خودتون از Application.startup استفاده کنید اینطوری :

Applicaton.Startup & "\database\" & databasename

به جای database name اسم database خودت و قرار بده ...
شما که نمی تونید حتما برید تو فلان درایو نصب کنید شاید اون درایو و کاربر نداشته باشه ف نمی تونید مسیر کپی بانک و هم دست کاربر بدید ... غیر منطقی هست. واسه Access مشکلی نیست اما اگه بانک Sql بود باید برید بانک و Attach کنید .مسیر mdf , ldf رو هم همینطوری می دهید ... اگه برای بار دوم هم می خواهید بانک رو رو سیستم کاربر بذارید مثلا تو به روزرسانی نرم افزارتون اول باید مسیر نصب نرم افزار را پیدا کنید که من الان دارم رو همین کار می کنم ، بعد باید بانک و deattach کنید و سپس بانک جدید را در همون مسیر قبل کپی کنید.در ضمن باید چک کنید که برنامه که از بانک استفاده می کند باز هست یا نه اگه باز بود باید ببندیش بعد deattach کنید...:لبخند:

saman_itc
شنبه 24 فروردین 1387, 21:11 عصر
من از Sql استفاده نکردم
روش های حرفه ای همیشه آسون ترین نیستن