PDA

View Full Version : سوال: به روز کردن کانکشن استرینگ (تغییر آدرس DataBase)



teymoorei
چهارشنبه 07 دی 1390, 02:30 صبح
سلام
تصویر زیر گویای همه چیز هست :
79807
درضمن می خوام این رشته یه جایی ذخیره بشه و هر بار نیاز به وارد کردنش نباشه .
یه جایی مثل app.config
خیلی تست کردم و جستجو کردم موفق نشدم .

teymoorei
چهارشنبه 07 دی 1390, 13:10 عصر
کسی نیست بلد باشه این سوال منو ؟

klinton
چهارشنبه 07 دی 1390, 22:56 عصر
شما میتونید کل دیتا سورس تونو یه جایی مثل رجیستری ذخیره کنید و در لود برنامه مقدار دهیش کنید
مثلا:


st =
"data source=" + ipaddress + ";initial catalog=db_asnad_daramad;User Id=" + TextBox5.Text.Trim + ";password=" + TextBox6.Text.Trim

'set value'
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\software\ana", "constr", (st))

'get value'





con.ConnectionString =CStr(My.Computer.Registry.GetValue("HKEY_CURRENT_USER\software\ana", "serv", ""))

teymoorei
پنج شنبه 08 دی 1390, 01:24 صبح
نمیشه چونه قبل از این که فرم بخواد Load بشه باید آدرس بهش داده بشه در حالی که این روش بعد بالا اومدن فرم هستش که اون موقع دیگه فایده ای نداره .
لطفا کمک کنید پروژم خوابیده .

klinton
پنج شنبه 08 دی 1390, 02:55 صبح
شما مگه تو form_load() چه کدی نوشتین که قبلش باید connection string رو مقدار دهی کنید؟ اولین درخواست و اتصال شما به دیتابیس کی هست؟

شما میتونی یه فرم باز کنی و تو این فرم user,pass , ip ,.... از کاربر بخواهی و از پروپرتیز statrtup form تونو به فرم ذکر شده تغییر بدین و از این فرم به فرم اصلیتون لینک کنید

و تو این فرم کانکشن استرینگ رومقدار دهی کنید برحسب اطلاعاتی که میگیرید

من این کارو کردم اینم عکسش
79858

salam333
پنج شنبه 08 دی 1390, 07:11 صبح
ميتوني براي راه اندازي شبكه يه متغييري تو ريجستري قرار بدي كه نشان دهنده تعريف شروع برنامه باشد بعد با استفاده ازآن مياي پرامترهاي شبكه در زمان شروع برنامه تعريف كنيد وبعد از خروج مجدد از برنامه آنو راه اندازي كنيد

nokhodsiah2001
پنج شنبه 08 دی 1390, 07:55 صبح
درود
میتونی از فایل UDL استفاده کنی
مثلاً :



ol_cn = New OleDbConnection
ol_cn.ConnectionString = "File Name=" & Application.StartupPath & "\test.udl"

teymoorei
پنج شنبه 08 دی 1390, 12:37 عصر
میتونی از فایل UDL استفاده کنی
میشه بیشتر توضیح بدید ؟

teymoorei
پنج شنبه 08 دی 1390, 22:37 عصر
بابا یکی کمک کنه از هر راهی استفاده کردم نمیشه دیونم کرد دیگه .

klinton
جمعه 09 دی 1390, 01:45 صبح
شما چرا راه بالایی رو امتحان نکردین یا چرا جواب نداد؟؟؟

teymoorei
جمعه 09 دی 1390, 15:15 عصر
نه جواب نداد هر کاری کردم

teymoorei
جمعه 09 دی 1390, 22:37 عصر
اینم نمونه پروژه لطفا یه نگاه بکنید بهش . (http://www.4shared.com/rar/Uc5_3cxE/NetWork.html)

klinton
شنبه 10 دی 1390, 02:08 صبح
من که چیز خاصی از برنامه نفهمیدم که باهاش بتونمتوضیح بدم اما من روشم واسه برنامه ها اینه:
یه ماژول اضافه میکنم که همه متغیر های DB رو توش public تعریف میکنم مثلا , connectionstring ,connection
اگه گاها connectionstring تغییر کنه تو رجیستری یا هر جای دیگه دخیرش میکنم و
con.connectionstring=کانکشن استرینگ تازه (con as connection)

حالا هر فرمی که میخاد باشه تو فرم لودش هر درخواستی که به db دارم تو دسترسه چون کانکشنم به درستی مقدار دهی شده حتی فرم startup form چون قبل از هر کاری کانکشن استرینگمو خوندم و مقداردهیش کردم و درسته دستورات فرم لود فرم startup اجرا شده ولی اون با کانکشن استرینگ قبلی بود ولی حالا connectionstring آپدیت شده .

teymoorei
شنبه 10 دی 1390, 20:04 عصر
میشه لطف کنید و یه نمونه برنامه برام بزارید .

teymoorei
یک شنبه 11 دی 1390, 23:32 عصر
کسی نیست کمک کنه ؟
کارم لنگه

teymoorei
دوشنبه 12 دی 1390, 16:58 عصر
کسی نیست کمک کنه ؟:گریه:

bzdesign
دوشنبه 12 دی 1390, 19:08 عصر
دوست خوبم به عنوان برنامه نویس اولین چیزی که باید یادبگیریم اینکه هر مشکلی تو دنیای کامپیوتر دارای جواب هست و هنر ما برنامه نویسا و مهندسان کامپیوتر ارائه راه حل مهندسی واسه حل مشکلاته. منتها من وقتی میبینم اینطور مثل میتدی ها دارید بی قراری میکنید کمی ناراحت میشم. البته قصد جسارت ندارم. چون برام به عنوان انسان دارای شخصیت و احترام هستید این عرایض رو ذکر کردم چون برام تک تک شماها مهم هستید. من پروژتون رو دان میکنم تا بررسی کنم مشکلتون رو. کمی صبر پیشه کنید به جواب میرسیم دوست خوبم.

teymoorei
دوشنبه 12 دی 1390, 19:53 عصر
سلام
متشکرم از راهنمایی ها تو اما من از هر هنری که بلد بودم استفاده کردم اما نشد و اسه همین بی قرار شدم ، بعدشم طرف قرار داد دیگه کلمو میکنه .
منظر هستم

bzdesign
سه شنبه 13 دی 1390, 00:00 صبح
دوست عزیز لطف کن اول بگو اون چه کاری بود که تو عکس اولی که گذاشتی کردی ؟؟؟؟؟ شما یه نفر تو این دنیا بهم نشون بده که اون مدلی کانکشن استرینگ بنویسه !! آخه کی میاد اسم سرور رو اون مدلی بگیره ؟؟؟ خوب اونجوری که بخوای بدی دست مشتری ،ندی بهتره والا. شما باید یه کار اساسی انجام بدی. اون چه طرز پارامتر گرفتنه آخه. اینطوری که من متوجه شدم شما میخوای یه سیستمی پیاده کنی که روی هر کامپیوتری بردی بتونی درجا اسم سرور و کلا کانکشن استرینگش رو تغییر بدی و نرم افزارتو اجرا کنی. درسته ؟ بخاطره همینه که میخواهی تو فایلی مثل app.config رشته رو ذخیره کنی. اگه درسته بگو تا بقیشو با هم قدم به قدم بریم.

klinton
سه شنبه 13 دی 1390, 00:20 صبح
Public

connectionstring As String = "data source=.;initial catalog=db_beton;integrated security=true;"


Public con As New SqlConnection(connectionstring)


نوشتن در رجیستری:


Try


If My.Computer.Registry.CurrentUser.OpenSubKey("software\ana") IsNot Nothing Then

ex =
True


Else

ex =
False


End If


Catch

ex =
False


End Try



If ex = False Then


Dim newKey As RegistryKey

newKey =
My.Computer.Registry.CurrentUser.CreateSubKey("software\ana")


End If



Dim ipaddress As String = ""


If CheckBox1.Checked = True Then

ipaddress = TextBox3.Text.Trim


Else

ipaddress =
"."


End If


'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''


If RadioButton1.Checked = True Then

st =
"data source=" + ipaddress + ";initial catalog=db_asnad_daramad;integrated security=true;"


ElseIf RadioButton2.Checked = True Then

st =
"data source=" + ipaddress + ";initial catalog=db_asnad_daramad;User Id=" + TextBox5.Text.Trim + ";password=" + TextBox6.Text.Trim


End If


''''''''''''''''''''''''''''''''''

My.Computer.Registry.SetValue("HKEY_CURRENT_USER\software\ana", "constr", (st))

My.Computer.Registry.SetValue("HKEY_CURRENT_USER\software\ana", "serv", (TextBox3.Text))





con.ConnectionString = st






خواندن از رجیستری:


TextBox3.Text =
CStr((My.Computer.Registry.GetValue("HKEY_CURRENT_USER\software\ana", "serv", "")))

con.ConnectionString =
CStr(My.Computer.Registry.GetValue("HKEY_CURRENT_USER\software\ana", "constr", ""))




serv همان سرور , constr کانکشن استرینگه

ساده تر از این نمیتونم !:بامزه:

teymoorei
سه شنبه 13 دی 1390, 20:51 عصر
سلام
مشکلم حل شد .
فقط یه سوال

می خوام قبل از ورود به برنامه چک کنم آیا ارتباط درسته یا نه ؟
اگه درست نبود بگه دوباره آدرس بده ؟

teymoorei
چهارشنبه 14 دی 1390, 18:22 عصر
یکی نیست راهنمایی کنه ؟

klinton
جمعه 16 دی 1390, 03:10 صبح
http://barnamenevis.org/showthread.php?321358-ایجاد-کانکشن-استرینگ-بصورت-متغیر-(-اتصال-برنامه-به-دیتابیس-بواسطه-فرم-)

klinton
جمعه 16 دی 1390, 03:16 صبح
خوب یه Query کوچک اجرا کن ببین درست اجرا میشه یا نه؟
try catch
یا
if commnd.executenonquery<>0

teymoorei
یک شنبه 18 دی 1390, 18:49 عصر
خوب نمیشه
توی try که مینوسم اول هنگ میکنه بعد پیغام میده که آدرس اشتباهه ، چیکار کنم که هنگ نکنه ؟
لطفا راهنمایی کنید ، برنامه رو نوشتم فقط همین مونده

teymoorei
دوشنبه 19 دی 1390, 16:56 عصر
کسی نمی خواد جواب بده ؟

meisam3322
دوشنبه 19 دی 1390, 20:42 عصر
نمیشه چونه قبل از این که فرم بخواد Load بشه باید آدرس بهش داده بشه در حالی که این روش بعد بالا اومدن فرم هستش که اون موقع دیگه فایده ای نداره .

برنامه شما میتونه اول یه Splash زیبا برای شروع داشته باشه. اون موقع میتونی کانکشن استرینگ رو از رجیستری، بانک یا فایل یا هر جای که ذخیره کردی بخونی. این خیلی بده که اول بسم ا... برنامه شروع کنه به لود از بانک.

کانکشن استرینگ همینطور که از نامش پیداست یه رشته معمولی هست. خیلی راحت میتونی اونو ویرایش کنی. این دیگه این همه دنگ و فنگ نداره. خیلی راحت هم میتونی به این رشته یه قسمتی رو اضافه یا حذف کنی. و یا حتیت ویرایش کنی.


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

اینطوری که نمیشه کمک کرد. حتما کد رو طوری نوشتی که هنگ میکنه. مگه میشه. کد رو بزارین ببینیم چی کار کردین تا بشه کاری کرد.

teymoorei
دوشنبه 19 دی 1390, 21:35 عصر
سلام

برنامه شما میتونه اول یه Splash زیبا برای شروع داشته باشه. اون موقع میتونی کانکشن استرینگ رو از رجیستری، بانک یا فایل یا هر جای که ذخیره کردی بخونی. این خیلی بده که اول بسم ا... برنامه شروع کنه به لود از بانک.

خوب دوست گلم منم دقیقا همین کار رو توی برنامه اصلیم کردم .

اینم لینک دانلود نمونه برنامه برای رفع مشکل (http://www.4shared.com/rar/QHClUZ2R/TestString.html)

mgh64120
دوشنبه 19 دی 1390, 22:18 عصر
سلام دوست عزيز


می خوام قبل از ورود به برنامه چک کنم آیا ارتباط درسته یا نه ؟
اگه درست نبود بگه دوباره آدرس بده ؟

براي اينكه بفهمي ارتباط درسته يا نه شي Connection رو Open كن.
اگر مشكلي نبود و Open شد ارتباط درسته ولي اگر خطا گرفت ممكنه رشته اتصال يا به قول شما ارتباط درست نباشه!
من در پروژم از تابع زير استفاده مي كنم.


Private Function ConOpen(ByVal objSqlConnection As SqlConnection) As Boolean
Try
objSqlConnection.Open()
Return True
Catch SqlException As SqlException
Return False
End Try
End Function


موفق باشيد...

teymoorei
دوشنبه 19 دی 1390, 22:47 عصر
هنگ میکنه بد جور
اگه براتون مقدوره اون برنامه ای که گذاشتم رو برام تکمیلش کنید ؟
من هر کاری می کنم بازم هنگ میکنه و در نهایت جواب رو میده .
ld

teymoorei
سه شنبه 20 دی 1390, 14:41 عصر
_________________________________________

teymoorei
پنج شنبه 22 دی 1390, 01:47 صبح
سلام
اومدم که این مشکل رو واسه همیشه خاتمه بدم

باید اینطوری کد مینوشم :
If My.Computer.Network.Ping(TextBox1.Text) = False Then

MessageBox.Show( "اتصال بر قرار نیست لطفا دوباره سعی کنید")
Else
MessageBox.Show("اتصال برقرار شد")
End If

Catch ex As Exception
MessageBox.Show("اتصال بر قرار نیست لطفا دوباره سعی کنید")

End Try



اما این هم بده که اینقدر دوستان بی توجه باشن .
یاحق

nokhodsiah2001
جمعه 23 دی 1390, 12:44 عصر
درود
ببخشيد دير جواب ميدم نمونه كد رو گذاشتم اميدوارم به دردت بخوره

Public dataconn AsNew OleDbConnection
dataconn.ConnectionString = "File Name=" & Application.StartupPath & "\udl\parking.udl"' strConn

يك فايل txt بساز و اسمش رو عوض كن و بذار مثلاَ parking.udl
حالا فايل رو باز كن

80696







80695

اين روش كمي در شروع ارتباط سرعتش كمه ولي براي كارير استفادش راحتتره

teymoorei
جمعه 23 دی 1390, 16:22 عصر
دوست گلم ممنون
اما این تاپیک vb.net