السلام عليكم ورحمة الله وبركاتة
عندي ملف اكسيل بقوم باستيراد البيانات منة واقوم بحفظ البيانات بالداتاتابل
الملف لة حد اقصي للاعمدة وهم خمسة اعمدة ولكن ممكن ان يكون بية 3 او 2 او 1 عمود الملف لابد ان يحتوي علي 5 اسماء ثابتة <colaوcolD,colC,colB> فعايز اقارن بين اسم العمود والاسم الثابت علي اعتبار ان الثابت موجود واسم العمود ليس لة مكان محدد بالاكسيل او الداتاتابل .
ما اريدة هوا نقل البيانات واضافتاها من الداتاتابل الي الداتابيز المشكلة اسماء الاعمدة ممكن تتغير ليس لها عمود محدد او الاعمدة ليست محددة ؟؟
الطريقة التي حاولت بها وهي فحص اسم كل عمود علي اساس مقارنتة بالاسم الثابت وبعد ذالك اضافة البيانات علي اساس اسم العمود الذي اقوم بوضعة بشكل ثابت اذا كان اسم العمود موجود بالاسم الثابت ياخذ قيم الخلايا اذا لم يكن موجود ياخذ - واضافتها الي الداتابيز ولكن الكود لم ينجح .
عندي ملف اكسيل بقوم باستيراد البيانات منة واقوم بحفظ البيانات بالداتاتابل
الملف لة حد اقصي للاعمدة وهم خمسة اعمدة ولكن ممكن ان يكون بية 3 او 2 او 1 عمود الملف لابد ان يحتوي علي 5 اسماء ثابتة <colaوcolD,colC,colB> فعايز اقارن بين اسم العمود والاسم الثابت علي اعتبار ان الثابت موجود واسم العمود ليس لة مكان محدد بالاكسيل او الداتاتابل .
ما اريدة هوا نقل البيانات واضافتاها من الداتاتابل الي الداتابيز المشكلة اسماء الاعمدة ممكن تتغير ليس لها عمود محدد او الاعمدة ليست محددة ؟؟
الطريقة التي حاولت بها وهي فحص اسم كل عمود علي اساس مقارنتة بالاسم الثابت وبعد ذالك اضافة البيانات علي اساس اسم العمود الذي اقوم بوضعة بشكل ثابت اذا كان اسم العمود موجود بالاسم الثابت ياخذ قيم الخلايا اذا لم يكن موجود ياخذ - واضافتها الي الداتابيز ولكن الكود لم ينجح .
كود :
Dim parta, partb, partc, partd As String
Dim i As Integer = 0
For i = 0 To dt2.Rows.Count - 1
If dt2 Is Nothing Then
Exit For : Exit Sub
End If
If (dt2.Rows(0)("cola").ToString = "cola") Then
parta = dt2.Rows(i)("cola")
End If
If (dt2.Rows(0)("colb").ToString = "colb") Then
partb = dt2.Rows(i)("colb")
End If
If (dt2.Rows(0)("colc").ToString = "colc") Then
partc = dt2.Rows(i)("colc")
End If
If (dt2.Rows(0)("cold").ToString = "cold") Then
partd = dt2.Rows(i)("cold")
End If
Dim com As New OleDbCommand("INSERT INTO EXPORT_TB(EXPORT_a,EXPORT_b,EXPORT_c,EXPORT_d) VALUES (@EXPORT_a,@EXPORT_b,@EXPORT_c,@EXPORT_d)", con)
com.Parameters.AddWithValue("@EXPORT_a", OleDbType.VarChar).Value = parta
com.Parameters.AddWithValue("@EXPORT_b", OleDbType.VarChar).Value = partb
com.Parameters.AddWithValue("@EXPORT_c", OleDbType.VarChar).Value = partc
com.Parameters.AddWithValue("@EXPORT_d", OleDbType.VarChar).Value = partd
con.Open()
com.ExecuteNonQuery()
con.Close()
Next