PDA

View Full Version : سوال: ارتباط برنامه Exe با بانک اطلاعاتی



Ship Storm
یک شنبه 15 اردیبهشت 1392, 22:33 عصر
با سلام
من یک برنامه نوشتم که تو فولدر Debug فایل های Exe اون قرار داره طبق روال
من اومدم و فایل های بانک اطلاعاتی رو بصورت MDF تو یک فولدر قرار دادم کنارشون
الان مشکل من اینجاست که وقتی برنامه رو تو درایوی که پروژه رو ایجاد کردم اجرا میکنم خیلی خوب کار میکنه ولی فقط کافیه فایل های exe و بانک اطلاعاتی اون رو کپی کنم تو یک درایو دیگه اینجاست که دیگه برنامه من کار نمیکنه و از ارتباط بانک اطلاعاتی من ایراد میگیره
خواستم بدونم راه حلی برای رفع این مشکل نیست ؟
اینم اروری که به من میده وقتی در فرم Login نام کاربری و رمز عبور رو وارد میکنم و روی دکمه Login کلیک میکنم :

103754
http://barnamenevis.org/images/misc/pencil.png

mokhtar_r
یک شنبه 15 اردیبهشت 1392, 22:41 عصر
فکر میکنم در کدهاتون یکجا اشتباه کردید ، خطا میگه دیتابیس با همین نام وجود دارد!
سورس بگذارید.

Ship Storm
یک شنبه 15 اردیبهشت 1392, 23:14 عصر
تو روند کدها مشکلی نیست چون فقط زمانی که تو درایو دیگه فایل ها رو کپی میکنم اینطوری میشه و الا تو همون درایو H که از ابتدا پروژه تعریف شده هیچ مشکلی نیست چون Database ای که تو Sql من Atach کردم از فایل MDF ای بوده که تو درایو H بوده ، حالا اگه فایل MDFموجود تو درایو D رو اگر Atach کرده بودم رو Sql برنامه تو درایو D فقط اجرا میشه و دیگه تو درایو h اجرا نمیشه
مشکل الان اینه که میخوام ببینم روشی هست که این ارور رو نده و براش فرقی نکنه این فایل های MDF از کدوم درایو Atach شده رو Sql
---
این هم نمونه کدی که من برای ارتباط با بانک استفاده کردم برای دکمهس Login
ساختار بقیه هم به همین صورت هست برای ارتباط با بانک



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conn As New SqlConnection("Server=.\SQLExpress;AttachDbFilename=" + Environment.CurrentDirectory + "\Database\Automation.mdf;Database=Automation;Trust ed_Connection=Yes;")
s2 = "Select count( * ) from Login where UserName = '" & TextBox1.Text & "' and Password = '" & TextBox2.Text & "'"
Dim com As New SqlCommand(s2, conn)
Dim res As Object
conn.Open()
res = com.ExecuteScalar()
conn.Close()
If res = 1 Then
MsgBox("Welcome Dear " + TextBox1.Text, MsgBoxStyle.OkOnly, "Login Successful")

us = TextBox1.Text
If us = "admin" Then
Main.Label4.Text = "ADMINISTRATOR"
Else
Main.Label4.Text = "USER"
us = TextBox1.Text
Main.Button3.Enabled = False
Main.Button5.Enabled = False
Main.Button9.Enabled = False
End If
Main.Show()
Me.Hide()
Else
MsgBox("Invalid User OR Password", MsgBoxStyle.Critical, "Attention Please")

Exit Sub
End If
End Sub

Ship Storm
سه شنبه 17 اردیبهشت 1392, 19:28 عصر
دوستان راهنمایی در کار نیست؟

eshaghrahimy
چهارشنبه 18 اردیبهشت 1392, 18:47 عصر
شما وقتی داخل کانکشن استرینگ از AttachDbFilename استفاده می کنید دیگه نیاز نیست که دوباره نام دیتابیس رو بنویسید
Database=Automation اگر این قسمت رو حذف کنید مشکلتون حل می شه

Ship Storm
چهارشنبه 18 اردیبهشت 1392, 20:04 عصر
شما وقتی داخل کانکشن استرینگ از AttachDbFilename استفاده می کنید دیگه نیاز نیست که دوباره نام دیتابیس رو بنویسید
Database=Automation اگر این قسمت رو حذف کنید مشکلتون حل می شه


مشکل حل نشد و یک ارور دیگه داد با حذف این قسمت
مجددا وقتی این قسمت رو اضافه کردم ارور رو نداد و لااقل تو درایو H که فایل های MDF اون رو تو SQL از تو درایو H من Atach کرده بودم بخوبی کار میکنه ولی تو سایر درایوها وقتی پروژه رو کپی میکنم کار نمیکنه

eshaghrahimy
پنج شنبه 19 اردیبهشت 1392, 16:18 عصر
ببینید با این مشکلتون حل می شه
Integrated Security=SSPI;Persist Security Info=False;AttachDbFilename=" + Environment.CurrentDirectory + "\Database\Automation.mdf;Data Source=.\sqlexpress

eshaghrahimy
پنج شنبه 19 اردیبهشت 1392, 16:20 عصر
در ضمن میتونید با ساختن یک فایل udl به صورت دستی به بانکتون وصل بشید و ارتباط را چک کنید بعد از اون اگه همون فایل را با notepad باز کنید کانکشن استرینگ را می تونید از اون بردارید

Ship Storm
پنج شنبه 19 اردیبهشت 1392, 20:13 عصر
ببینید با این مشکلتون حل می شه
Integrated Security=SSPI;Persist Security Info=False;AttachDbFilename=" + Environment.CurrentDirectory + "\Database\Automation.mdf;Data Source=.\sqlexpress



باز هم ارور داد و مشکل برطرف نشد

103953

Ship Storm
جمعه 20 اردیبهشت 1392, 18:16 عصر
دوستان راه حلی برای رفع مشکل من ندارید ؟ پس من مشکلم رو چکار کنم :ناراحت:

Ship Storm
جمعه 20 اردیبهشت 1392, 19:15 عصر
مشکل با راهنمایی بچه های انجمن نرم افزار سایت p30world حل شد و مشکل از اینجا بود ه باید رشته اتصال به اینصورت تغییر می کرد :



("Data Source=.\SQLExpress;AttachDbFilename=|DataDirector y|\Automation.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;")



از دوست عزیزی که زحمت کشیدن تو این تاپیک و بنده رو راهنمایی کردن هم تشکر میکنم
ممنون از همگی

M.S.Abbasi
یک شنبه 20 مرداد 1392, 18:36 عصر
("Data Source=.\SQLExpress;AttachDbFilename=|DataDirector y|\Automation.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;")