PDA

View Full Version : database داینامیک



nh212002
دوشنبه 08 اسفند 1384, 18:31 عصر
سلام
کسی هست که به من بگه چطور یک database داینامیک داشته باشم در برنامم/
برنامه نویسی رابا vb.net و بانکم access است/می خواهم بتونم برنامم را روی هر سیستم اجرا کنم/
البته من با اینستال شیلدset upبرای برنامم ساختم اما روی سیستم های دیگر جواب نمی ده/
ممنون از همگی

بابک زواری
دوشنبه 08 اسفند 1384, 18:38 عصر
سلام
کسی هست که به من بگه چطور یک database داینامیک داشته باشم در برنامم/
برنامه نویسی رابا vb.net و بانکم access است/می خواهم بتونم برنامم را روی هر سیستم اجرا کنم/
البته من با اینستال شیلدset upبرای برنامم ساختم اما روی سیستم های دیگر جواب نمی ده/
ممنون از همگی
منظورت آدرس دینامیک هست یا اینکه وری سیستم مقصد بانک رو اتوماتیک ایجاد کنی ؟
اگر حالت اول مد نظره میتونی در Connection String اونو مقدار دهی کنید

HO457
دوشنبه 08 اسفند 1384, 19:26 عصر
منظورت آدرس دینامیک هست یا اینکه وری سیستم مقصد بانک رو اتوماتیک ایجاد کنی ؟

آقای زواری برای ایجاد بانک اکسس روی کامپیوتری که برنامه میخواد اجرا بشه توی خود ado.net روشی وجود داره؟؟؟؟ الآن من از روشی که استفاده میکنم استفاده از ado از کنترل های com هست. توی خود ado.net هست همچین امکانی؟؟؟/

بابک زواری
دوشنبه 08 اسفند 1384, 22:03 عصر
بله در زمان ADO خدا بیامرز من از ADOX استفاده میکردم یک تعداد هم سورس تو سایت گذاشتم برای اینکار ؛ یک تحقیق کنم ببینم توی دات نت هم میشه یا نه

بابک زواری
دوشنبه 08 اسفند 1384, 22:07 عصر
مقاله ایی راجع به ADOX
www.DotNetSource.com/vb/ADOX.zip (http://www.dotnetsource.com/vb/ADOX.zip)

nh212002
سه شنبه 09 اسفند 1384, 07:20 صبح
سلام
از لطفتون ممنون /اقای زواری منظورم ادرس داینامیک/میخواهم روی سیستم مقصد اجرا شه به راحتی/یک نفر گفته بود اگر با اینستال شیلد setupبسازم خودبخود این مشکل حل میشه ؟اما نشد/
به چه صورت می تونم درconnection string مقداردهی کنم/
ممنون

بابک زواری
سه شنبه 09 اسفند 1384, 08:21 صبح
سلام
از لطفتون ممنون /اقای زواری منظورم ادرس داینامیک/میخواهم روی سیستم مقصد اجرا شه به راحتی/یک نفر گفته بود اگر با اینستال شیلد setupبسازم خودبخود این مشکل حل میشه ؟اما نشد/
به چه صورت می تونم درconnection string مقداردهی کنم/
ممنون

شما برای باز کردن یک ارتباط از کدی مثل کد زیر استفاده میکنید



Dim CN As New SqlConnection()
Dim SqlCmd As New SqlCommand()
Dim SqlAdapt As New SqlDataAdapter(SqlCmd)
Dim Ds As New DataSet
SqlCmd.Connection = CN
SqlCmd.CommandText = ""
CN.Close()
CN.ConnectionString = "SERVER = " & ServerName & _
" ; DATABASE =" & DataBaseName & _
" ; User ID =" & My_UserName & _
" ; Pwd = " & My_Password
CN.Open()


که در اینجا ServerName و DataBaseName و My_UserName و My_Password
به شکل پارامتر هستند حالا به جای DataBaseName که نام دیتابیس قرار میگره میتونید آدرس اون رو هر جا که هست پاس بدید .

مثلا اگر کنار فایل اجرائی شماست میتونید از Application.StartupPath جهت آدرس دهی کنار برنامه استفاده کنید





DataBaseName = Application.StartupPath & "\Mdata.mdb"

nh212002
سه شنبه 09 اسفند 1384, 09:43 صبح
مرسی
امتحان میکنم اگه نشد بازم میپرسم

بابک زواری
سه شنبه 09 اسفند 1384, 15:19 عصر
مرسی
امتحان میکنم اگه نشد بازم میپرسم

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

niloufar
سه شنبه 09 اسفند 1384, 17:47 عصر
سلام
آقای زواری
1- این مقاله که بازم تو وی بی 6 بود (شما فرمودید تحقیق کنم ببینم تو دات نت چیکار میشه کرد) هنوز تحقیق نکردید؟ یا همین راه برای دات نت هم صحیحه؟
2- صاحب تاپیک گفته بودند بانکشون تو اکسس است و شما sqlconnection رو بهشون توضیح دادید. آیا با توجه بوده (و میشه از این کلاس برای اکسس هم استفاده کرد) یا اشتباه چاپی بوده؟

ali_kolahdoozan
سه شنبه 09 اسفند 1384, 18:41 عصر
ای بابا خوب مثلا آدرس نصب رو توی install shild درایو c شاخه ali بدهید . database ها هم همانجا باشد راحت

nh212002
شنبه 13 اسفند 1384, 08:18 صبح
سلام
خسته نباشین
اقای زواری من تست کردم اما درنوشتن connectionstringبیشتر توضیح بدین/در ضمن من db را در پوشه binگذاشتم,اما این error را میده/Additional information: An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;'.
اگه ممکنه کمکم کنین/
ممنونم

Hamedm
شنبه 13 اسفند 1384, 18:57 عصر
مقاله ایی راجع به ADOX
www.DotNetSource.com/vb/ADOX.zip (http://www.dotnetsource.com/vb/ADOX.zip)

سلام

یادمه n سال پیش جناب زواری یک برنامه در بخش VB6.0 قرار داده بودند که بانک Access رو میگرفت و دستوران تشکیل اونو با استفاده از ADOX رو میداد. من هم چند وقت بعدش سورس همون برنامه رو در همون بخش قرار دادم. یک جستجو کنی میتونی راحت پیداش کنی.

در پناه حق موفق باشید و پرتوان

بابک زواری
شنبه 13 اسفند 1384, 19:22 عصر
حامد اون سورسه رو میشه تبدیلش کرد به ADO.Net ؟ تا حالا تحقیق کردی ؟

Hamedm
شنبه 13 اسفند 1384, 19:27 عصر
حامد اون سورسه رو میشه تبدیلش کرد به ADO.Net ؟ تا حالا تحقیق کردی ؟

سلام

چرا از همون کلاس ADOX در .NET استفاده نمیکنید؟

در پناه حق موفق باشید و پرتوان

ali_kolahdoozan
یک شنبه 14 اسفند 1384, 08:00 صبح
در ضمن با api ها می تونید محل قرار گیری فایل exe خود را تشخیص دهید حالا مثلا database شما در شاخه data همون فولدر هست و راحت بهش متصل بشین

بابک زواری
یک شنبه 14 اسفند 1384, 08:04 صبح
اینم یک کلاس برای این کار




Option Strict Off
Option Explicit On
Friend Class SQL_BD
Dim con As New ADODB.Connection

''Create Database in SQL Server
Public Function Create_db(ByVal db_name As String) As Object
On Error Resume Next
Dim SQl As String
If con.State = ADODB.ObjectStateEnum.adStateOpen Then con.Close()
'Connect with Master Database
con.Open(("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Master"))

SQl = "CREATE DATABASE " & db_name & " " & " ON" & "( NAME = " & db_name & "_dat," & " FILENAME = 'c:\program files\microsoft sql server\mssql\data\" & db_name & "dat.mdf', " & " SIZE = 10, " & " MAXSIZE = 50," & " FILEGROWTH = 5 ) "
SQl = SQl & " LOG ON " & " ( NAME = '" & db_name & "_log', " & " FILENAME = 'c:\program files\microsoft sql server\mssql\data\" & db_name & "log.ldf'," & " SIZE = 5MB," & " MAXSIZE = 25MB, " & " FILEGROWTH = 5MB )"
con.Execute(SQl)
con.Close()
End Function

''Create table in working database
Public Function Create_Table(ByVal conString As String, ByVal tab_name As String, ByVal table_colams_list As String) As Object
On Error GoTo e
If con.State = ADODB.ObjectStateEnum.adStateOpen Then con.Close()
'Connect with working Database
con.Open((conString))
Dim SQl As String
SQl = "if exists (select table_name from INFORMATION_SCHEMA.TABLES where table_name='" & tab_name & "') " & " drop table " & tab_name
con.Execute(SQl)
SQl = "CREATE table " & tab_name & "( " & table_colams_list & " )"
con.Execute(SQl)
con.Close()
e:
If Err.Number Then
MsgBox(Err.Description, MsgBoxStyle.Critical)
Err.Clear()
End If
End Function
End Class

Hamedm
یک شنبه 14 اسفند 1384, 09:18 صبح
سلام


اینم یک کلاس برای این کار ...

در مورد این کد 2تا سوال دارم:
1. چرا از ADODB استفاده کردید؟
2. چرا اصلا کلاس برای این کار نوشتید؟ بنظر من این کار خیلی راحت انجام میشه و نیازی به نوشتم کلاس نیست (البته این نظر شخصی منه).

در پناه حق موفق باشید و پرتوان

بابک زواری
یک شنبه 14 اسفند 1384, 11:46 صبح
در مورد این کد 2تا سوال دارم:
1. چرا از ADODB استفاده کردید؟
2. چرا اصلا کلاس برای این کار نوشتید؟ بنظر من این کار خیلی راحت انجام میشه و نیازی به نوشتم کلاس نیست (البته این نظر شخصی منه).
در پناه حق موفق باشید و پرتوان

حقیقتا آدرس نویسنده رو ندارم و گرنه میپرسیدم بهت میگفتم ؛ اما اگر بخوای کدها رو دقیق نگاه کنم بهت جواب بدم :چشمک:
راستی حامد تو هرچی در میاری پول اینترنت میدی ؟ هر وقت من اومدم تو آنلاینی یا ADSL داری یا شدید معتاد سایت شدی ؛ میخوای یک مدت اخراجت کن یکم استراحت کنی :متفکر: به خاطر خودت میگم .
نظر دوستان چیه ؟ حامد رو یک هفته اخراج کنیم ؟:لبخند: :قهقهه:

niloufar
یک شنبه 14 اسفند 1384, 14:12 عصر
سلام


در مورد این کد 2تا سوال دارم:
1. چرا از ADODB استفاده کردید؟
2. چرا اصلا کلاس برای این کار نوشتید؟ بنظر من این کار خیلی راحت انجام میشه و نیازی به نوشتم کلاس نیست (البته این نظر شخصی منه).

در پناه حق موفق باشید و پرتوان
سلام
آقای محمدی
میشه بفرمایید شما چه پیشنهادی دارید؟

Hamedm
یک شنبه 14 اسفند 1384, 17:23 عصر
سلام


سلام
آقای محمدی
میشه بفرمایید شما چه پیشنهادی دارید؟
چرا از خود ADO.NET استفاده نمیکنید:

Dim cTemp As New SqlClient.SqlCommand
cTemp.CommandText = "Create Database Hamed"
cTemp.Connection = BankConnection

Try

BankConnection.Open()
cTemp.ExecuteNonQuery()
BankConnection.Close()

Catch ex As Exception

BankConnection.Close()
MsgBox(ex.Message)

End Try


راستی حامد تو هرچی در میاری پول اینترنت میدی ؟ هر وقت من اومدم تو آنلاینی یا ADSL داری یا شدید معتاد سایت شدی ؛ میخوای یک مدت اخراجت کن یکم استراحت کنی :متفکر: به خاطر خودت میگم . اینترنت من ماهیانه است. ماهی حدودا با پول تلفن و کارت دارم 40000تومان میدم. متاسفانه ADSL خط تلفن مارو پشتیبانی نمیکنه، مگرنه برام باصرفه تره ADSL بگیرم.

نظر دوستان چیه ؟ حامد رو یک هفته اخراج کنیم ؟:لبخند: :قهقهه:
شاعر میگه: "هرچه از دوست رسد، نیکوست".
هرجور راحتید :چشمک:.

در پناه حق موفق باشید و پرتوان