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

مساعده بخصوص اضافه ملف قاعده البيانات الى sql

بدأه Mr.Owsama في 25 أغسطس 2012 · 13 رد · 1,250 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كل عام وانتو بالف خير جميعا ً :)

اتمنى الاقي المساعده هنا لاني تعبت وانا ابحث والظاهر المشكله بطريقة بحث عن المطلوب

المهم ادخل في الموضوع

انا صممت برنامج باستخدام vb.net + SQL server

والان حابب اسويله setup عارف الطريقه وكل شي وعارف انه لازم احمل برنامج sql على جهاز العميل عشان يشتغل

الي ابي اعرفه كيف اقدر اضيف قاعده بيانات الى الsql عن طريق كود vb.net وكيف اربط قاعده بياناتي بالاس كيو ال كمان بالكود

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

ان شاء الله يكون استفساري واضح

#3

مشكوور اخوي

الدرس مفيد

الحين ابي اعرف لما اسوي سيت اب كيف اضيف سكربت قاعده البيانات الى sql تلقائي عن طريق الفيجوال

#4

ممكن تعمل متغير في Settings من نوع Boolean وتعطيه القيمة False وليكن اسمه X

وعند فتح البرنامج أول مرة على جهاز العميل اكتب في حدث تحميل الفورم الاساسية التالي

If x = False Then
ضع كود إنشاء قاعدة البيانات هنا

My. Settings.x = True
My.Settings.Save
End If
#5

وممكن طريقة أخرى عن طريق البحث عن قاعدة البيانات في القواعد المسجلة في sql server

فإن لم يجدها يقوم بإنشائها

#6

للتحقق من عدم وجود database:

if db_id('database_name_goes_here') is null
begin
	-- أنشئ قاعدة البيانات وجميع محتوياتها
end

أو (يعمل فقط على SQL server 2005 أو أعلى)

if not exists(select * from sys.databases where name = 'database_name_goes_here')
	-- أنشئ قاعدة البيانات

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

شكرا للأخ الكريم Xacker على المشاركة

ومن الممكن أن يتم ذلك بالطريقة التالية

dim sql as string = "Server=(local); DataBase=; Integrated Security=SSPId"
dim cs as New SqlConnection(sql)
        Dim sql1 As String = "SELECT * FROM master..sysdatabases WHERE Name = 'DataBaseNAme'"
        Dim ds As New DataSet
dim da as New SqlDataAdapter(sql1, cs)
        da.Fill(ds, "master")
        If Me.BindingContext(ds, "master").Count = 0 Then
           انشئ قاعدة البيانات

                    End If

مع تغيير DataBaseNAme إلى اسم قاعدة البيانات المراد الاستعلام عنها

تم تعديل هذه المشاركة بواسطة asn في 26 أغسطس 2012 في 12:37

#8

الف الف شكر اخواني على المساعده

انا باطبقهم وان شاء الله وباذن الله يشتغل معي تمام

:)

#9

واخر سؤال للاخوه والسموحه على الازعاج :)

لما اريد احصل على اسم السرفر حق sql

حاولت اجرب الطريقه هذي

server =.\SQLEXPRESS; Database =chai; integrated security = true"

بس للاسف ما نفعت معي في ممكن حل ثاني؟

#10

هذا كود الاتصال حقي

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

 Try

            With FrmSERVERSETTINGS
                .OpenFileDialog1.FileName = Application.StartupPath & "\Config.ini"
                openedFileStream = .OpenFileDialog1.OpenFile()
            End With

            ReDim dataBytes(openedFileStream.Length - 1) 'Init 
            openedFileStream.Read(dataBytes, 0, openedFileStream.Length)
            openedFileStream.Close()
            tmpStr = System.Text.Encoding.Unicode.GetString(dataBytes)

            With FrmSERVERSETTINGS
                If Split(tmpStr, ":")(4) = "1" Then
                    'network
                    CnString = "Provider=SQLOLEDB;" & _
                               "Data Source=" & Split(tmpStr, ":")(0) & _
                               ";Network=" & Split(tmpStr, ":")(1) & _
                               ";Server=" & Split(tmpStr, ":")(1) & _
                               ";Initial Catalog=SaleInv_DDB" & _
                               ";User Id=" & Split(tmpStr, ":")(2) & _
                               ";Password=" & Split(tmpStr, ":")(3)
                Else
                    'local
                    'MsgBox(Split(tmpStr, ":")(1))
                    CnString = "Provider=SQLOLEDB;Server=" & Split(tmpStr, ":")(1) & _
                               ";Database=SaleInv_DDB; Trusted_Connection=yes;"
                End If
            End With
            Dim sqlCon As New OleDbConnection
            sqlCon.ConnectionString = CnString
            sqlCon.Open()
            checkServer = True
            sqlCon.Close()
        Catch ex As Exception
            checkServer = False
        End Try

الحين في معاي هذا الامر

Environment.MachineNameُُ

حاولت اسوي متغير dbserver as string وعملت كذه dbserver=Enviroment.MachineName

المشكله الحين ماني عارف كيف ادخل قيمه dbserver الي هي اسم الكمبيوتر واخليها بالشكل هذا dbserver\SQLEXPRESS

يالييييت تساعدوني كييف اسوي :)

تم تعديل هذه المشاركة بواسطة Mr.Owsama في 27 أغسطس 2012 في 15:06

#11

ماذا لو لم يكن الـ SQL server هو SQL server 2005 express ؟

SQLEXPRESS هو الـ instance name الخاص بـ SQL server 2005 express (وربما SQL server 2008 express لكني غير متأكد إن كانت SQLExpress أم MSSQLEXPRESS)

حتى الـ instance name يمكن تغييرها، بالتالي أرى من الأفضل أن تسأل مستخدم النظام لأول مرة عن إصدار SQL server الذي يستخدمه وتسأله فيما إذا أراد استخدام الـ Default instance name أم اسم آخر تسمح له بإدخاله، بالإضافة إلى اسم المستخدم وكلمة المرور في حال أراد استخدام SQL authentication بدلاً من Windows authentication..

بشكل عام أي شئ قد يكون المستخدم قام بتغييره، اسأله عنه في أول تشغيل.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#12

مش مشكله اخوي هكر نوع الاصدار

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

فياريت مساعده :)

#13

بداية أود القول بأني أجد أنه من غير المنطقي أن تفرض على المستخدم إصدار معين من قواعد بيانات MSSQL خصوصاً إن كان تطبيقك يمكن أن يعمل على أي إصدار، فقد تجد مستخدم لديه الإصدار 2000 وهو يستخدمه مع أحد البرامج الموجودة لديه سلفاً، فلماذا قد يحتاج لتثبيت MSSQL 2005 ؟

أنصحك بأن تعيد التفكير بهذا الجزء.

بالنسبة للشفرة التي وضعتها،

الشفرة تفترض وجود ملف بالاسم Config.ini في ذات المسار مع البرنامج، وتقوم بفتح الملف للقراءة ويتم تحويل السلسلة التي تمت قراءتها إلى Unicode.

الجزء الأهم أن السلسلة تتكون من الشكل التالي:

.--- 0 ---.------ 1 -----.--- 2 --.-- 3 ---.------ 4-----.
datasource:network/server:username:password:network or not

يتم استخدام الأمر Split لتقسيم السلسلة عند كل ":" إلى مصفوفة نصّية من القيم يتم تعيينها بحسب الترتيب، مثلاً: Split(tmpStr, ":")(0) يشير إلى أول قيمة في السلسلة و Split(tmpStr, ":")(2) يشير إلى القيمة التي تحمل الترتيب 2، وهي تمثل اسم المستخدم كما في الشكل أعلاه (الترتيب يبدأ بـ 0 وينتهي بـ 4)

بالتالي بفرض أن Split(tmpStr, ":")(1) تساوي "\SQLEXPRESS" فيمكنك ببساطة تعديل السطر التالي:

";Server=" & Split(tmpStr, ":")(1) & _

ليصبح:

";Server=" & dbserver & Split(tmpStr, ":")(1) & _

بالمناسبة: هل أنت متأكد من صحة الـ connection string المستخدم؟ هذه المرة الأولى التي أرى هذا البارامتر ";Network=" .. عادة يكون ";Network Library="

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

";Network=" & Split(tmpStr, ":")(1) & _

إلى تعليق وانظر إن حلّت المشكلة.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#14

الف شكر لك اخووي هكر

طيب اخوي انا الحين صممت البرنامج

وابي اخلي الناس تحمله ويتحمل معاها تلقائي

انا الي فهمت اني اخليه يحمل البرنامج وبنفس الوقت يتحمل sql server

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

ويربط قاعده البيانات فيه

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

عشان كذه قاعد كل شويه احاول اجزء اسئلتي واستفساراتي

طبعا هذي اول مره لي اسوي برنامج setup

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…