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

كيف اجعل البرنامج يعمل في اجهزة اخرى؟

بدأه zaraki_kenpache في 20 فبراير 2012 · 6 رد · 1,637 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لقد اتنهيت من اول برنامج في بيئة ال c# باستخدام sql server وهو يعمل بكفائة ,كيف اصنع ملف تنصيبي لليوزر (user) يضم كل المكونات بلأخص قواعد البيانات؟

هل يجب تنصيب اس كيو ئيل سيرفر في حاسوبه؟ وحتى اذا فعلت كيف انقل القاعدة من فولدر C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA الى سيرفر الجديد مع كل جداوله والبروسيجرات

لانه اذا صنعت نسخة منه ووضعته في فولدر data في سيرفر الجديد فانه لايقراه . لقد صنعت قاعدة باسم sadb ورايت ملفين في السيرفر بهذا الاسم SADB.mdf و SADB_log.LDF ماذا افعل بهم كيف احولهم الى حاسوب اخر .

لقد درست الكيوري بشكل جيد وفرحت للمرونة للتعامل مع القاعدات لكن في مرحلة النهاية جائت هذه المشكلة.اذا هل من طريقة سهلة او هناك طريقة معروفة؟ وشكرا

#2

السلام عليكم

عند إنشاء ملف التنصيب أضف setup dependency و فيها حدد إصدار SQL server و .Net framework لإيقاف التنصيب طالما لا يوجد كلاهما.

و أضف في post setup وجهة أو قسم لإنشاء قاعدة بيانات ثم تقم بتعميرها من خلال قاعدة بيانات قمت بعمل export لها مسبقا

#3

شكرا على الاهتمام ولكن لم افهم المقطع(قسم لإنشاء قاعدة بيانات ثم تقم بتعميرها من خلال قاعدة بيانات قمت بعمل export لها مسبقا) هل استخدم كود او شى اخر وكيف اعمل قسم لانشاء القاعدة

#4

يااخوان اذا بس بروجيكت بسيط بيعمل في جهاز اخر فقط داتابيس بسيط وتيبل واحد وفيه بس id and name وشكرا

#5

عرفت الحل واقدمه لمن لا يعرف

الحل هو كود يتغيير بحسب تغيير اسم الحاسبة وانتاج connection string حسب تغيير الحاسبة

وهذا هو الكود يعمل على sqlexpress واا كنت تستعمل سيرفر اخر كل ما عليك فعلة تغير الاسم في الحاسبة ويعمل الكود بدون اسم المستخدم والباسوورد فقطwindows authentication

واحب ان اذكر بان النسخة المرفقة مع دوت نيت هى sqlexpress

وهذا هو الكود

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace wellcomscreen
{
   public  class GetConnectionStringclass
    {
       static public  string GetConnectionString()
       {

           //get computer name to data source جلب اسم الكومبيوتر
           Type t = typeof(System.Windows.Forms.SystemInformation);
           PropertyInfo prop = t.GetProperty("ComputerName");
           object propval = prop.GetValue(null, null);
                                                       //sqlexpress اسم السيرفر
           return "Data Source=" + propval.ToString() + "\\sqlexpress ;" + "Integrated Security=SSPI;";

           //وفي النهاية تحصل على Conectin string
           //وكل ما عليك فعله في اي مكان من البرنامج 
           //استخدام using
           //كما في مثال الاتي
             //using (SqlConnection cn = new SqlConnection(GetConnectionStringclass.GetConnectionString()))
             //           {

             //               SqlCommand cmd = new SqlCommand();
             //               cmd.Connection = cn;
             //               cn.Open();
             //               cmd.CommandType = CommandType.StoredProcedure;
             //               cmd.CommandText = "insertobject"; 
             //               cmd.Parameters.Add("@id", SqlDbType.Int).Value = n++;
             //               cmd.Parameters.Add("@schoolID", SqlDbType.NChar, 50).Value = textBox6.Text;
             //               cmd.ExecuteNonQuery();

             //               cn.Close();

           //               }
       }
    }
}

تم تعديل هذه المشاركة بواسطة zaraki_kenpache في 5 أكتوبر 2012 في 14:33

1
#6

اقترح تعديل الكونكشن سترينغ الى

@"Data Source=.\SQLEXPRESS;AttachDbFilename="+Application.StartupPath+@"\clientsmanagementdatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

المهم تغيير AttachDbFilename

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

تم تعديل هذه المشاركة بواسطة zaka88 في 5 أكتوبر 2012 في 18:32

#7
zaraki_kenpache كتب:

عرفت الحل واقدمه لمن لا يعرف

الحل هو كود يتغيير بحسب تغيير اسم الحاسبة وانتاج connection string حسب تغيير الحاسبة

وهذا هو الكود يعمل على sqlexpress واا كنت تستعمل سيرفر اخر كل ما عليك فعلة تغير الاسم في الحاسبة ويعمل الكود بدون اسم المستخدم والباسوورد فقطwindows authentication

واحب ان اذكر بان النسخة المرفقة مع دوت نيت هى sqlexpress

وهذا هو الكود

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace wellcomscreen
{
   public  class GetConnectionStringclass
    {
       static public  string GetConnectionString()
       {

           //get computer name to data source جلب اسم الكومبيوتر
           Type t = typeof(System.Windows.Forms.SystemInformation);
           PropertyInfo prop = t.GetProperty("ComputerName");
           object propval = prop.GetValue(null, null);
                                                       //sqlexpress اسم السيرفر
           return "Data Source=" + propval.ToString() + "\\sqlexpress ;" + "Integrated Security=SSPI;";

           //وفي النهاية تحصل على Conectin string
           //وكل ما عليك فعله في اي مكان من البرنامج 
           //استخدام using
           //كما في مثال الاتي
             //using (SqlConnection cn = new SqlConnection(GetConnectionStringclass.GetConnectionString()))
             //           {

             //               SqlCommand cmd = new SqlCommand();
             //               cmd.Connection = cn;
             //               cn.Open();
             //               cmd.CommandType = CommandType.StoredProcedure;
             //               cmd.CommandText = "insertobject"; 
             //               cmd.Parameters.Add("@id", SqlDbType.Int).Value = n++;
             //               cmd.Parameters.Add("@schoolID", SqlDbType.NChar, 50).Value = textBox6.Text;
             //               cmd.ExecuteNonQuery();

             //               cn.Close();

           //               }
       }
    }
}

أخى الكريم

هل هذا الحل يغنى عن عدم تنصيب sql server فى جهاز العميل لو الامر كذلك اتمنى توضيح اين اضع هذا الكود واين تكون قاعدة البيانات هل تكون مع ملف التنصيب

zaka88 كتب:

اقترح تعديل الكونكشن سترينغ الى

@"Data Source=.\SQLEXPRESS;AttachDbFilename="+Application.StartupPath+@"\clientsmanagementdatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

المهم تغيير AttachDbFilename

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

أخى الكريم

هل هذا الحل يغنى عن عدم تنصيب sql server فى جهاز العميل لو الامر كذلك اتمنى توضيح اين اضع هذا الكود واين تكون قاعدة البيانات هل تكون مع ملف التنصيب

أتمنى الرد للاهمية

تم تعديل هذه المشاركة بواسطة حامد محمد الوصيف في 17 أكتوبر 2012 في 19:19

13598125002.gif

038c8ecfa8.gif

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