منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكله في اضافة البيانات التي باللغه العربيه في سيكوال سيرفر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم اخوتي
عندي مشكله وهي عند اضافة البيانات التي باللغه العربيه في سيكوال سيرفر تظهر علي شكل علامة استفهام فما الحل
وهدا هو الكود 
ارجو التعديل عليه
وجزاكم الله خيرا
PHP كود :
Public Sub Insert_Patient(ByVal Code As IntegerByVal RegistrationDate As DateByVal ResultDate As DateByVal RegistrationTime As DateByVal ResultTime As DateByVal PatientTitle As StringByVal PatientName As String)
 
       'إضافة البيانات
        Dim cmd As New SqlCommand("Insert into Patients (Code,RegistrationDate,ResultDate,RegistrationTime,ResultTime,PatientTitle,PatientName) values(@Code,@RegistrationDate,@ResultDate,@RegistrationTime,@ResultTime,@PatientTitle,@PatientName)", connSQL)
        cmd.Parameters.Add("Code", SqlDbType.Int).Value = Max_Code_Form_Patients() + 1
        cmd.Parameters.Add("RegistrationDate", SqlDbType.Date).Value = RegistrationDate
        cmd.Parameters.Add("ResultDate", SqlDbType.Date).Value = ResultDate
        cmd.Parameters.Add("RegistrationTime", SqlDbType.VarChar).Value = RegistrationTime
        cmd.Parameters.Add("ResultTime", SqlDbType.VarChar).Value = ResultTime
        cmd.Parameters.Add("@PatientTitle", SqlDbType.VarChar).Value = PatientTitle
        cmd.Parameters.Add("@PatientName", SqlDbType.VarChar).Value = PatientName
        If connSQL.State = 1 Then connSQL.Close()
        connSQL.Open()
        cmd.ExecuteNonQuery()
        connSQL.Close()
        cmd = Nothing
    End Sub 
ثم اقوم باستدعائه في زر الاضافه 
PHP كود :
       Insert_Patient(LblCode.TextDateTimePicker3.TextDateTimePicker4.TextlblRegDate.TextlblResultDate.TextComboBox1.TextComboBox2.Text
أنا بستخدم الكود دا وهو شغال معي 100%
كود :
Dim Cmd As New SqlCommand
           With Cmd
               .Connection = con
               .CommandType = CommandType.Text
               .CommandText = "Insert Into table (اسم_الخدمة,التكلفة)values('" & t1.Text & "','" & t2.Text & "')"
           End With
           If con.State = 1 Then con.Close()
           con.Open()
           Cmd.ExecuteNonQuery()
           con.Close()
           MsgBox("تم إضافة السجل بنجاح", MsgBoxStyle.Information, "حفظ")
           Cmd = Nothing
(30-07-19, 02:56 AM)اسامه الهرماوي كتب : [ -> ]أنا بستخدم الكود دا وهو شغال معي 100%
كود :
Dim Cmd As New SqlCommand
           With Cmd
               .Connection = con
               .CommandType = CommandType.Text
               .CommandText = "Insert Into table (اسم_الخدمة,التكلفة)values('" & t1.Text & "','" & t2.Text & "')"
           End With
           If con.State = 1 Then con.Close()
           con.Open()
           Cmd.ExecuteNonQuery()
           con.Close()
           MsgBox("تم إضافة السجل بنجاح", MsgBoxStyle.Information, "حفظ")
           Cmd = Nothing

شكرا اخي اسامه
ولكن ان كنت ساستخدم هدا الكود مثلا مائة مرة . 
سيكون الامر صعب ان اكتب الكود كاملا في كل مره وخاصة ان كان عد السجلات كثيرا 
فهل ينفع اعمله في Sub  ثم اقوم باستدعائه حينما اشاء
كيف دلك وجزاك الله خيرا
نعم ضعة عي sub واستدعية كما تشاء أو ضعة في موديل وحول كلمة Dim الي متغير عام إن كانت عملية الحفظ من نفس الفورم.

وسيكون الكود هكذا:

Public Cmd As New SqlCommand
(30-07-19, 03:21 AM)اسامه الهرماوي كتب : [ -> ]نعم ضعة عي sub واستدعية كما تشاء أو ضعة في موديل وحول كلمة Dim الي متغير عام إن كانت عملية الحفظ من نفس الفورم.

وسيكون الكود هكذا:

Public Cmd As New SqlCommand

اسف اخي اريد منك ان تعمله في Sub  وتقوم باستدعائه

 لاني عملته ولم ينجح معي 
جزاك الله خيرا
جرب أن تغير نوع الحقل في SQL من VarChar إلى NVarChar
السلام عليكم اخي الكريم 
لديك الخمس الحقول الاولى وعند اضافة الباراميترات لم تضع اشارة (الاروباص) اي هده الاشارة @ 
قم باضافتها للحقول الخمسة الاولى
لاحظ هنا
كود :
cmd.Parameters.Add("RegistrationDate", SqlDbType.Date).Value = RegistrationDate
يجب ان يكون هكذا
كود :
cmd.Parameters.Add("@RegistrationDate", SqlDbType.Date).Value = RegistrationDate
(30-07-19, 03:40 AM)سامي محمد كتب : [ -> ]جرب أن تغير نوع الحقل في SQL من VarChar إلى NVarChar
نعم اخي نجحت بفضل الله ثم مساعدتك

بارك الله فيك 
لا اعرف كيف اشكر اخي 
ولا انسي اخي اسامه الهرماوي
تعبته معي كثيرا 
بارك الله فيكم جميعا

(30-07-19, 03:43 AM)ابراهيم ايبو كتب : [ -> ]
السلام عليكم اخي الكريم 
لديك الخمس الحقول الاولى وعند اضافة الباراميترات لم تضع اشارة (الاروباص) اي هده الاشارة @ 
قم باضافتها للحقول الخمسة الاولى
لاحظ هنا
كود :
cmd.Parameters.Add("RegistrationDate", SqlDbType.Date).Value = RegistrationDate
يجب ان يكون هكذا
كود :
cmd.Parameters.Add("@RegistrationDate", SqlDbType.Date).Value = RegistrationDate


تمام اخي [url=http://vb4arb.com/vb/member.php?action=profile&uid=28150][/url]
بارك الله الله فيك تعبتك معي في اكثر من مشاركه 
جزاك الله خير الجزاء وجعله الله في ميزان حسناتك
بالمناسبة مازال لديك خطأ حتى تكون صيغة كتابة الباراميتر صحيحة ولايظهر لك اخطاء
انظر الى هذا السطر  وانهج مثله لباقي الحقول
كود :
cmd.Parameters.Add(New SqlParameter("@PatientTitle", SqlDbType.VarChar)).Value = PatientTitle
تفضل كود الحفظ خاصتك هكذا
PHP كود :
 Public Sub Insert_Patient(ByVal Code As IntegerByVal RegistrationDate As DateByVal ResultDate As DateByVal RegistrationTime As DateByVal ResultTime As DateByVal PatientTitle As StringByVal PatientName As String)
 
       'إضافة البيانات
        Dim cmd As New SqlCommand("Insert into Patients (Code,RegistrationDate,ResultDate,RegistrationTime,ResultTime,PatientTitle,PatientName) values(@Code,@RegistrationDate,@ResultDate,@RegistrationTime,@ResultTime,@PatientTitle,@PatientName)", connSQL)
        cmd.Parameters.Add(New SqlParameter("@Code", SqlDbType.Int)).Value = Max_Code_Form_Patients() + 1
        cmd.Parameters.Add(New SqlParameter("@RegistrationDate", SqlDbType.Date)).Value = RegistrationDate
        cmd.Parameters.Add(New SqlParameter("@ResultDate", SqlDbType.Date)).Value = ResultDate
        cmd.Parameters.Add(New SqlParameter("@RegistrationTime", SqlDbType.VarChar)).Value = RegistrationTime
        cmd.Parameters.Add(New SqlParameter("@ResultTime", SqlDbType.VarChar)).Value = ResultTime
        cmd.Parameters.Add(New SqlParameter("@PatientTitle", SqlDbType.VarChar)).Value = PatientTitle
        cmd.Parameters.Add(New SqlParameter("@PatientName", SqlDbType.VarChar)).Value = PatientName

        If connSQL.State = 1 Then connSQL.Close()
        connSQL.Open()
        cmd.ExecuteNonQuery()
        connSQL.Close()
        cmd = Nothing
    End Sub 
(30-07-19, 03:57 AM)ابراهيم ايبو كتب : [ -> ]
بالمناسبة مازال لديك خطأ حتى تكون صيغة كتابة الباراميتر صحيحة ولايظهر لك اخطاء
انظر الى هذا السطر  وانهج مثله لباقي الحقول
كود :
cmd.Parameters.Add(New SqlParameter("@PatientTitle", SqlDbType.VarChar)).Value = PatientTitle
تفضل كود الحفظ خاصتك هكذا
PHP كود :
 Public Sub Insert_Patient(ByVal Code As IntegerByVal RegistrationDate As DateByVal ResultDate As DateByVal RegistrationTime As DateByVal ResultTime As DateByVal PatientTitle As StringByVal PatientName As String)
 
       'إضافة البيانات
        Dim cmd As New SqlCommand("Insert into Patients (Code,RegistrationDate,ResultDate,RegistrationTime,ResultTime,PatientTitle,PatientName) values(@Code,@RegistrationDate,@ResultDate,@RegistrationTime,@ResultTime,@PatientTitle,@PatientName)", connSQL)
        cmd.Parameters.Add(New SqlParameter("@Code", SqlDbType.Int)).Value = Max_Code_Form_Patients() + 1
        cmd.Parameters.Add(New SqlParameter("@RegistrationDate", SqlDbType.Date)).Value = RegistrationDate
        cmd.Parameters.Add(New SqlParameter("@ResultDate", SqlDbType.Date)).Value = ResultDate
        cmd.Parameters.Add(New SqlParameter("@RegistrationTime", SqlDbType.VarChar)).Value = RegistrationTime
        cmd.Parameters.Add(New SqlParameter("@ResultTime", SqlDbType.VarChar)).Value = ResultTime
        cmd.Parameters.Add(New SqlParameter("@PatientTitle", SqlDbType.VarChar)).Value = PatientTitle
        cmd.Parameters.Add(New SqlParameter("@PatientName", SqlDbType.VarChar)).Value = PatientName

        If connSQL.State = 1 Then connSQL.Close()
        connSQL.Open()
        cmd.ExecuteNonQuery()
        connSQL.Close()
        cmd = Nothing
    End Sub 
والله يا اخي لا اعرف كيف اشكرك
تعبتك كثيرا سامحني
Heart
الصفحات : 1 2