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

نسخة كاملة : طلب تحويل كود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

أساتذتي الكرام ارغب في تحويل هذا الكود vba اكسيس الى سي شارب

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

كود :
Dim dlg As FileDialog, strFileName As String
Set dlg = Application.FileDialog(msoFileDialogFilePicker)
With dlg
.Title = "اختر ملف اكسيل المراد استيراد البيانات منه"
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Excel Files", "*.xls*", 1
.Filters.Add "All Files", "*.*", 1
If .Show = -1 Then
strFileName = .SelectedItems(1)


Dim ImportFileName As String
ImportFileName = strFileName
DoCmd.TransferSpreadsheet acImport, 8, "table1", ImportFileName, True

Else
Exit Sub
End If
End With

ولكم مني جزيل الشكر
السلام عليكم

حاولت استيراد البيانات من اكسيل الى data table   لغرض تصديرها الى قاعدة بيانات اكسيس


كود :
private void cmdExcel_Click(object sender, EventArgs e)

       {
           {
               OpenFileDialog op = new OpenFileDialog();
               op.Filter = "Excel 97 - 2003|*.xls|Excel 2007|*.xlsx";
               if (op.ShowDialog() == System.Windows.Forms.DialogResult.OK)
               {
                   if (File.Exists(op.FileName))
                   {
                       string[] Arr = null;
                       Arr = op.FileName.Split('.');
                       if (Arr.Length > 0)
                       {
                           if (Arr[Arr.Length - 1] == "xls")
                           {
                               sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + op.FileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
                           }
                           else if (Arr[Arr.Length - 1] == "xlsx")

                               sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + op.FileName + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";
                       }
                   }
                       FillData();

                   
               }
           }
       }

public string sConnectionString;
        private void FillData()
        {
            if (sConnectionString.Length > 0)
            {
                OleDbConnection cn = new OleDbConnection(sConnectionString);

                cn.Open();
                DataTable dt = new DataTable();
                OleDbDataAdapter Adpt = new  OleDbDataAdapter("selsct * from [tblBlackList]", cn);
                Adpt.Fill(dt);



            }

            {
                OleDbConnection con = new OleDbConnection(sConnectionString);
                da = new OleDbDataAdapter("selsct * from [tblBlackList]", con);
                dt = new DataTable();
                da.Fill(dt);
               
            }

{




المشكلة التي واجهتني في عملية الاستيراد من اكسيل وتعبئة  data table 
حيث ظهرت لي رسالة تفيد 
 System.InvalidOperationException: 'إن الموفر 'Microsoft.ACE.OLEDB.12.0' غير مسجل على الجهاز المحلي.'

للتوضيح تم ارفاق صورة

شكرا لك اخي الكريم
المثال والكود vb.net

الذي ارديده #c
حاولت عمل الطريقه ولكن لم تفلح مازالت المشكلة
تفضل هذا المثال محول للغة السي شارب :
[quote pid='152399' dateline='1574601352']
أشكر لك استاذي الكريم اهتمامك ولكن المثال لم يعمل حيث خرجت رسالة كما في الصورة المرفقة



[/quote]
آمل ان اجد الحل وفقكم الله
اخي العزيز الملف المرفق شغال 100% اولا عليك استيراد مكتبة Excel من مجلد packages المرفق مع المثال و هذه صورة من المثال :

[attachment=23523]
(24-11-19, 09:01 PM)asemshahen5 كتب : [ -> ]اخي العزيز الملف المرفق شغال 100% اولا عليك استيراد مكتبة Excel و مكتبة ICSharpCode.SharpZipLib من مجلد packages المرفق مع المثال و هذه صورة من المثال :

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