لود شدن دیتابیسی خاص در برنامه نوشته شده با vb

saman0181

New Member
سلام
چطور و با چه دستوری میشه دیتابیسی خاص مثلا دیتابیس شماره 3(از 4 تا دیتابیس موجود در sql)رو فراخاونی کرد و اطلاعات مورد نیاز رو دریافت کرد؟
متشکر
 

the_king

مدیرکل انجمن
سلام
چطور و با چه دستوری میشه دیتابیسی خاص مثلا دیتابیس شماره 3(از 4 تا دیتابیس موجود در sql)رو فراخاونی کرد و اطلاعات مورد نیاز رو دریافت کرد؟
متشکر

اتصال به پایگاه داده یک 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 هست.
 

saman0181

New Member
اتصال به پایگاه داده یک 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 هست.




سلام

باتشکر از پاسخ شما


کنار فایل 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 بگیرم اتثال بدم به دیتابیس جدیدی که خودم تعریف میکنم براش
برنامه های نصب شده بروی سیستم اینها هستش(شاید کمکی کنه)




3jlz_لتلبتلب.jpg
 

پیوست ها

  • 60u_11.jpg
    60u_11.jpg
    202.3 کیلوبایت · بازدیدها: 2
  • mha_111.jpg
    mha_111.jpg
    189.9 کیلوبایت · بازدیدها: 2
آخرین ویرایش:

the_king

مدیرکل انجمن
سلام

باتشکر از پاسخ شما


کنار فایل 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 بگیرم اتثال بدم به دیتابیس جدیدی که خودم تعریف میکنم براش
برنامه های نصب شده بروی سیستم اینها هستش(شاید کمکی کنه)




3jlz_لتلبتلب.jpg

دو تا ConnectionString داره :
اولی که پایگاه داده LacSim ئه که به SQL Server متصل میشه. اگر روی سیستم تون SQL Server نصب نشده باشه و یا سرویس هایش در حال اجرا نباشه
و یا موقع نصب کردن SQL Server اسم Instance اش رو به نام Server ثبت نکرده باشید (موقع نصب کردن نام پیشفرض Server نیست) و یا برای کاربر sa (در SQL Server) رمز تعریف شده باشه (رمز خالی نباشه) و
یا پایگاه داده LacSim در این سرور Attach نشده باشه این اتصال برقرار نمیشه. باید همه این نکات رعایت شده باشه که تغییر ConnectionString اول تاثیری روی اجرا بگذاره.

دومی یک پایگاه داده Access ئه که مسیر فایلش C:\work\Data\Packing.MDB است و با نصب بودن Microsoft Office و Access و درست بودن مسیر فایل قاعدتا بدون مشکل اتصال برقرار میشه.
اگر مسیر فایل رو عوض کنید یا فایل Access دیگری رو جایگزین اون فایل کنید پایگاه داده ای که در برنامه فراخوانی میشه عوض خواهد شد.
 

saman0181

New Member
jig5_844.jpg


سلام
فایل exe رو یک بار کپی کردم و رینمش کردم به ه اسم دیگه
وقتی اجراش میکنم اینپیغام میاد
فکر کنم بشه فهمید ساختارش چجوری پیکر بندی شده و چجوری دیتابیس رو لود میکنه
جالب اینجاس وقتی برمیگردونم اسمشو به حالت قبل خیلی راحت دیتا بیس مربوطه رو باز میکنه و برنامه بالا میادش
اناگر باید جایی اسم فاسل exe رو به دیتابیسی تعریف کرد

لطفا راهنمایی بفرمایید چطور اینکارو انجام بدم
در صورت نیاز فایل سورس برنامه هم ارسال میکنم
تشکر
 

the_king

مدیرکل انجمن
jig5_844.jpg


سلام
فایل exe رو یک بار کپی کردم و رینمش کردم به ه اسم دیگه
وقتی اجراش میکنم اینپیغام میاد
فکر کنم بشه فهمید ساختارش چجوری پیکر بندی شده و چجوری دیتابیس رو لود میکنه
جالب اینجاس وقتی برمیگردونم اسمشو به حالت قبل خیلی راحت دیتا بیس مربوطه رو باز میکنه و برنامه بالا میادش
اناگر باید جایی اسم فاسل exe رو به دیتابیسی تعریف کرد

لطفا راهنمایی بفرمایید چطور اینکارو انجام بدم
در صورت نیاز فایل سورس برنامه هم ارسال میکنم
تشکر

ترکیب کلیدی کلید ویندوز + کلید R را فشار دهید (
WinR.gif
) تا پنجره Run باز بشه، عبارت regedit را بنویسید و OK کنید.

در Registry Editor شاخه HKEY_CURRENT_USER رو باز کنید و داخلش Software و داخلش VB and VBA Program Settings رو باز کنید.
تنظیمات Registry برنامه هایی که در ویژوال بیسیک نوشته می شوند معمولا با یک شاخه به اسم برنامه داخل این VB and VBA Program Settings ذخیره میشه.
 

saman0181

New Member
ترکیب کلیدی کلید ویندوز + کلید R را فشار دهید (
WinR.gif
) تا پنجره Run باز بشه، عبارت regedit را بنویسید و OK کنید.

در Registry Editor شاخه HKEY_CURRENT_USER رو باز کنید و داخلش Software و داخلش VB and VBA Program Settings رو باز کنید.
تنظیمات Registry برنامه هایی که در ویژوال بیسیک نوشته می شوند معمولا با یک شاخه به اسم برنامه داخل این VB and VBA Program Settings ذخیره میشه.

هیچ خبری نیست
id8c_ca.jpg


امکان داره با برنامه کریستال ریپورت دیتابیس خاصی رو به فایل اگز مربوطه ارتباط بدن؟
 

the_king

مدیرکل انجمن
هیچ خبری نیست

امکان داره با برنامه کریستال ریپورت دیتابیس خاصی رو به فایل اگز مربوطه ارتباط بدن؟

کلا راه برای ارتباط دادن با دیتابیس خیلی بیشتر از یکی دو مورد ئه، اما به هر حال اگه نرم افزار در مسیر های فایل مختلفی قابل نصب ئه قاعدتا مسیر پایگاه داده جزئی از کد غیر قابل تغییر برنامه نیست،
جایی ذخیره میشه که قابل تغییر ئه. حالا یا فایل ئه یا Registry ویندوز.
 

جدیدترین ارسال ها

بالا