سلام
چطور و با چه دستوری میشه دیتابیسی خاص مثلا دیتابیس شماره 3(از 4 تا دیتابیس موجود در sql)رو فراخاونی کرد و اطلاعات مورد نیاز رو دریافت کرد؟
متشکر
SELECT name FROM sys.databases
Dim databases As New List(Of String)
Using con As New SqlClient.SqlConnection("Data Source=.;Integrated Security=True")
con.Open()
Dim cmd As New SqlClient.SqlCommand("SELECT name FROM sys.databases", con)
Using reader As SqlClient.SqlDataReader = cmd.ExecuteReader()
While reader.Read
databases.Add(reader.GetString(0))
End While
End Using
Dim dbName As String = databases(4)
cmd.CommandText = "SELECT TABLE_NAME FROM " + dbName + ".INFORMATION_SCHEMA.TABLES"
Dim tableName As String = cmd.ExecuteScalar()
MessageBox.Show(tableName)
End Using
اتصال به پایگاه داده یک ConnectionString داره که متن اش مطابق با نوع پایگاه داده و نوع اتصال فرق می کنه اما به هر حال یک رشته String ئه.
پایگاه داده با اسم یا مسیر فایل مشخص میشه، حالا اگر بخواهید از بین پایگاه داده های موجود در سرور یکی را انتخاب کنید باید اول
لیست اسامی پایگاه داده را دریافت کنید.
کد:SELECT name FROM sys.databases
در مثال زیر ابتدا اسامی پایگاه داده ها در سرور پیشفرض . دریافت شده و در لیست databases قرار می گیرد، سپس در پایگاه داده اندیس 4 با کد (Dim dbName As String = databases(4 نام اولین
جدول پایگاه داده خوانده می شود :
کد:Dim databases As New List(Of String) Using con As New SqlClient.SqlConnection("Data Source=.;Integrated Security=True") con.Open() Dim cmd As New SqlClient.SqlCommand("SELECT name FROM sys.databases", con) Using reader As SqlClient.SqlDataReader = cmd.ExecuteReader() While reader.Read databases.Add(reader.GetString(0)) End While End Using Dim dbName As String = databases(4) cmd.CommandText = "SELECT TABLE_NAME FROM " + dbName + ".INFORMATION_SCHEMA.TABLES" Dim tableName As String = cmd.ExecuteScalar() MessageBox.Show(tableName) End Using
در سایت connectionstrings.com نمونه انواع مختلف ConnectionString هست.
[LEFT]
[Database]
ConnectionString=driver={SQL Server};server=Server;uid=sa;pwd=;database=LacSim
;ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\work\Data\Packing.MDB
[/LEFT]
سلام
باتشکر از پاسخ شما
کنار فایل exe یک فایل با پسوند ini هست که داخلش دستورنوشته شدهکد:[LEFT] [Database] ConnectionString=driver={SQL Server};server=Server;uid=sa;pwd=;database=LacSim ;ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\work\Data\Packing.MDB [/LEFT]
اما با تغییر اسم دیتا بیس مورد نظر و ذخیره ان در فایل ini فایل exe دوباره همان دیتابیس قبلی رو لود میکنه
در واقع روش متصل شدن برنامه به دیتابیس رو نمیدونم چطور هستش و از کجا سرچشمه میگیره
طبق عکس زیر
2 فایل exe 2 دیتا بیس مختلف رو اجرا میکنند
الان من میخوام یک کپی از فایل exe بگیرم اتثال بدم به دیتابیس جدیدی که خودم تعریف میکنم براش
برنامه های نصب شده بروی سیستم اینها هستش(شاید کمکی کنه)
![]()
![]()
سلام
فایل exe رو یک بار کپی کردم و رینمش کردم به ه اسم دیگه
وقتی اجراش میکنم اینپیغام میاد
فکر کنم بشه فهمید ساختارش چجوری پیکر بندی شده و چجوری دیتابیس رو لود میکنه
جالب اینجاس وقتی برمیگردونم اسمشو به حالت قبل خیلی راحت دیتا بیس مربوطه رو باز میکنه و برنامه بالا میادش
اناگر باید جایی اسم فاسل exe رو به دیتابیسی تعریف کرد
لطفا راهنمایی بفرمایید چطور اینکارو انجام بدم
در صورت نیاز فایل سورس برنامه هم ارسال میکنم
تشکر
ترکیب کلیدی کلید ویندوز + کلید R را فشار دهید () تا پنجره Run باز بشه، عبارت regedit را بنویسید و OK کنید.![]()
در Registry Editor شاخه HKEY_CURRENT_USER رو باز کنید و داخلش Software و داخلش VB and VBA Program Settings رو باز کنید.
تنظیمات Registry برنامه هایی که در ویژوال بیسیک نوشته می شوند معمولا با یک شاخه به اسم برنامه داخل این VB and VBA Program Settings ذخیره میشه.
هیچ خبری نیست
امکان داره با برنامه کریستال ریپورت دیتابیس خاصی رو به فایل اگز مربوطه ارتباط بدن؟