الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحزيم مشروع فيجوال بزك 2005

بدأه ahmed@vetch في 28 يوليو 2012 · 4 رد · 1,050 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله

الحمد لله اتممت مشروع باستخدام vb.net 2005

وقاعده البيانات على sql server 2000

المشكله هنا عندما اقوم بتحزيم البرنامج لايعمل على اى جهاز اخر لفقدانه قاعده البيانات او من باب اولى اتصاله بالسرفر

السؤال :

هل يتطلب منى ان اعمل setup للسكول سيرفر لكل عميل يقوم بتسطيب البرنامج وعمل ريستور لقاعده البيانات

او هل هناك طريقه اخرى يمكننى بها من تحزيم قاعده البيانات مع المشروع بحيث يحتوى ايقونه البرنامج على البرنامج وقاعده بياناته كلما يتم تسطيبه يتم فرد قاعده البيانات بطريقه تلقائيه

بحث كثيرا ولكن لم اجد حل كامل اتمنى منك الحل ولكم جزيل الشكر

وكل عام وانت بكل خير

#2

أخي الفاضل

لا يتم تضمين ملفات قاعدة البيانات من ضمن ملفات Setup

==========

يتم تنصيب برنامج SQL Server علي السيرفر مرة واحدة فقط ويكون Join to Domain (خطوة من ضمن خطوات التهيئة ) ثم يتم الاتصال بقاعدة البيانات من خلال البرنامج الموجود علي اجهزة المستخدمين ( الطرفيات ) أو Clients من خلال سلسسلة الاتصال Connection string

مرفق روابط لها صلة بالموضوع

/index.php?showtopic=219394

/index.php?showtopic=108048

http://www.absba.org/showthread.php?t=341208

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#3

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

لكن المشروع لدى مرتبط بقاعده بيانات على

sql server2005 mangement

انا الان اريد ان احزم المشروع ليكون ملف setup يمكن نسخ الملف وتشغيله على اى جهاز اخر بدون الرجوع للجهاز الذى يحتوى على sql server2005

بمعنى انمشروعى هو برنامج لاداره محل تجارى وهذا سوف يكون برنامج مختص على جهاز منفرد ،

عند تحزيمى بالطريقه العاديه وتجربته على اى جهاز اخر يفيد بعدم وجود او قدرته على الاتصال بقاعده البيانات او sql server2005

قمت بعمل detach لقاعده البيانات وعمل اتصال عليها من عن طريق القائمه data ثم add new data source ثم database ثم new connection ثم

change ثم microsoft sql server database file ثم browes ثم اختيار قاعده البيانات التى يعمل عليها المشروع وعملتلها detach من قبل ،، وهى بأمتداد .mdf

بعد ذلك بختار use windows authentication وبضغط ok

هو بيدينى بعد كده كود اتصال

Data Source=.\SQLEXPRESS;AttachDbFilename=D:\hh\ahmed.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

بعد كده next وبختار كل object الخاصه بقاعده البيانات وبحفظ وfinish

بلاقى قاعده البيانات فى solution explorer

وكمان بلاقيها فى ملفات المشروع الملفين الخاصين بقاعهده البيانات .mdf ,.log

للعلم انا بشتغل فى الاكواد دى فى المشروع بتاعى

Module

Imports System.Data.OleDb
Module Module1
    Public cn As New OleDbConnection
    Public cmd As New OleDbCommand
    Public cmd1 As New OleDbCommand
    Public dr As OleDbDataReader
    Public s As String
    Public onh As Integer
    Public h As Integer
    Public ds As New DataSet
    Public ad As New OleDbDataAdapter
End Module

كود الاتصال

 If cn.State = ConnectionState.Closed Then
            cn.ConnectionString = "provider=SQLOLEDB;SERVER=VETCH;DATABASE=ahmed;USER ID=sa;PWD=sa5000"
            cn.Open()
        End If

        cmd.Connection = cn
        cmd.CommandType = CommandType.Text
        onh = 0

ايه المفروض اعمله بعد كده وياريت بالتفصيل انا عارف انى متقل عليكوا بس من الله الاجر ان شاء الله

كل عام وانتم بخير

#4

أخي السائل

يوجد مشكلة هنا

هل انت تعمل بالويذرد أم بكتابة الكود ؟

أنا أري ان حضرتك مرة تستخدم سلسة للاتصال ومرة أخري تستخدم السلسلة التي يقوم البرنامج بتنزيلها اوتوماتيك بعد استخدام الويذرد ؟ ارجو الايضاح اي طريقة تتبع

المهم

- اذا كان البرنامج سيعمل علي جهاز واحد فقط عند العميل فيجب تنزيل برنامج SQL Server علي جهاز العميل النسخة Express لكي يستطيع البرنامج الاتصال بالقاعدة

- ويجب تعديل سلسلة الاتصال بالشكل المناسب لكي تتوافق مع اسم الهوست الجديد

مثال

اذا كان جهاز العميل اسمة ahmed و SQL instance اسمة IT ستكون السلسة كذلك

provider=ahmed\IT

أو

provider=.\IT

وعلامة . تعني اسم جهاز العميل

ثم تقوم بعمل attach لقاعدة بيانات العميل داخل SQL Server أو تقوم بتعديل سلسلة الاتصال لكي تقوم بعمل attach لقاعدة البيانات وذلك في حالة عدم تنزيل Enterprise manager لبرنامج السيكوال طرف العميل

واخيرا

احتمال يكون الشرح صعب تطبيقة بالنسبة لك لكن هذا هو ما يجب عملة لتشغيل البرنامج طرف العميل

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#5

سيدى الفاضل اشكرك واشكر متابعتك الاكثر من رائعه

بفضل الله تعالى قد توصلت الى الحل الصحيح

فقد قمت بالغاء اكواد oledb

واستبدلتها ب SqlClient

وكما ترى فقط غيرت كل الانظمه فى صفحه Module

الى SqlClient

Imports System.Data.SqlClient.SqlConnection
'Imports System.Data.OleDb
Module Module1
    Public cn As New System.Data.SqlClient.SqlConnection
    Public cmd As New SqlClient.SqlCommand
    Public dr As SqlClient.SqlDataReader
    Public ad As New SqlClient.SqlDataAdapter
    'Public cn2 As New OleDbConnection
    'Public cmd As New OleDbCommand
    'Public cmd1 As New OleDbCommand
    'Public dr2 As OleDbDataReader
    Public s As String
    Public onh As Integer
    Public h As Integer
    Public ds As New DataSet
    'Public ad2 As New OleDbDataAdapter

الى جانب تغيير كود الاتصال الى

 If cn.State = ConnectionState.Closed Then
            cn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=G:\vb.net\ahmed.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
            cn.Open()
        End If
 cmd.Connection = cn
        cmd.CommandType = CommandType.Text
        onh = 0

وايضا داخل عبارات الادخال والتعديل الخ

الحمد لله تم بنجاح

شكرا ورمضان كريم

مواضيع مشابهة