تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] حول مشكلة توافق نوع البيانات عند الاستعلام في اكسل
#4
المشكلة التي تواجهها تتعلق بتفسير Excel لأنواع البيانات عند إدخال الأرقام عن طريق الكود باستخدام OLEDB. عند إدخال البيانات يدوياً في Excel، يتم حفظها عادةً بالنوع الصحيح مباشرةً. ولكن عند إدخال البيانات برمجياً باستخدام OLEDB، قد يُحفظ النوع كـ "نص" بدلاً من "رقم" إذا لم يتم التعامل معه بشكل صحيح.

لحل هذه المشكلة، يمكنك التأكد من أن القيم المدخلة يتم تحويلها إلى النوع الصحيح عند الإضافة. يمكنك محاولة استخدام الدالة CInt أو CLng لتحويل القيم إلى أرقام قبل إدخالها في Excel.

إليك مثال على كيفية تعديل كود الإضافة للتحقق من نوع البيانات الصحيح:



PHP كود :
' افترض أن لديك الاتصال مفتوح بالفعل وأن cmd هو كائن OleDbCommand
For Each row As DataGridViewRow In dgv1.SelectedRows
    Dim id As Integer = CInt(row.Cells(0).Value) ' 
تحويل القيمة إلى عدد صحيح
    cm
.CommandText "INSERT INTO [tb1$] (tid, tname, tphone, temail) VALUES (@tid, @tname, @tphone, @temail)"
 
   cm.Parameters.Clear()
 
   cm.Parameters.AddWithValue("@tid"id)
 
   cm.Parameters.AddWithValue("@tname"row.Cells(1).Value.ToString())
 
   cm.Parameters.AddWithValue("@tphone"row.Cells(2).Value.ToString())
 
   cm.Parameters.AddWithValue("@temail"row.Cells(3).Value.ToString())
 
   cm.ExecuteNonQuery()
Next 



أما بالنسبة لكود التحديث، تأكد من أن القيم المستخدمة في الشرط هي من النوع الصحيح أيضًا:


PHP كود :
Dim arr(dgv1.SelectedRows.Count 1) As Integer ' تأكد من تعريف المصفوفة كأعداد صحيحة
Dim n As Integer = 0
For Each row As DataGridViewRow In dgv1.SelectedRows
    arr(n) = CInt(row.Cells(0).Value) ' 
تحويل القيمة إلى عدد صحيح
    n 
+= 1
Next

Dim ids 
As String String.Join(","arr)
cm.Parameters.Clear()
cm.CommandText "UPDATE [tb1$] SET tid=null, tname=null, tphone=null, temail=null WHERE tid IN (" ids ")"

If con.State ConnectionState.Closed Then con.Open()
cm.ExecuteNonQuery() 

يجب أن تضمن أن كل قيمة تُضاف أو تُستخدم في الشروط يتم تحويلها إلى النوع الصحيح قبل استخدامها في SQL. هذا يحل مشكلة التوافق بين أنواع البيانات عند التعامل مع Excel باستخدام OLEDB.
غَزة شجرة سنديان لا تنحني، ووردة لا تذبل، وشوكة عصية على الكسر. غزة، دماؤها تنتصر على السيف والسياف.
متغيب لفترة ان اخطأت بحق احد ارجو المسامحة
الرد }}}
تم الشكر بواسطة: justforit , justforit


الردود في هذا الموضوع
RE: حول مشكلة توافق نوع البيانات عند الاستعلام في اكسل - بواسطة غزة العزة - 19-05-24, 11:58 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استفسارات عن قواعد البيانات مبتدئ بوحمد 0 1,009 06-11-24, 10:15 AM
آخر رد: بوحمد
  [C#.NET] مشكلة في مجلد قاعدة البيانات kamel1978 3 691 06-10-24, 06:26 PM
آخر رد: Taha Okla
  ما هو كود معرفة نوع البيانات من اكسس؟ justforit 6 1,054 23-05-24, 08:22 AM
آخر رد: مصمم هاوي
Big Grin مشكلة لسه ماحدش جاوبني عليها cmd.excutenunquery Medo84 2 1,758 19-05-24, 12:03 PM
آخر رد: غزة العزة
  مشكلة فى الجريد فيو salah525 10 1,365 05-11-23, 08:15 PM
آخر رد: justforit
  مشكلة عند الاتصال ب sql server 2014 bassant 1 1,331 27-08-23, 12:26 PM
آخر رد: رضوان الجماعي
  [سؤال] عدم إظهار الصور مع النص فى Listview من قاعدة البيانات alims 2 2,035 27-08-23, 12:22 PM
آخر رد: رضوان الجماعي
  استفسار عن تخزين الوقت في قاعدة البيانات strongriseman 2 1,571 22-04-22, 07:27 PM
آخر رد: strongriseman
  [سؤال] مشكلة فى عرض الصورة من ادخل قاعدة البيانات alims 2 1,712 17-11-21, 10:09 AM
آخر رد: سعود
  استعلام يرجع اسماء الاعمدة و نوع البيانات في جدول معين بسام محمدغانم 0 1,288 23-10-21, 01:43 AM
آخر رد: بسام محمدغانم

التنقل السريع :


يقوم بقرائة الموضوع: