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

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

اريد نقل او نسخ بيانات الداتاجريد فيو الي الداتاسيت مع فورمات الاعمدة لنصي0و1و2 ورقمي3 وتجاهل العمود الاول0.
(19-12-19, 09:42 PM)محمد اسماعيل كتب : [ -> ]السلا معليكم ورحمة الله وبركاتة

اريد نقل او نسخ بيانات الداتاجريد فيو الي الداتاسيت مع فورمات الاعمدة لنصي0و1و2  ورقمي3 وتجاهل العمود الاول0.

كود :
Dim dt As New DataTable
'dt.Columns.Add("col0", GetType(String)) ' تجاهل
dt.Columns.Add("col1", GetType(String))
dt.Columns.Add("col2", GetType(String))
dt.Columns.Add("col3", GetType(Integer))

For Each row As DataGridViewRow In DATAG_CLIEN.Rows
   If row.IsNewRow Then Exit For

   'Dim value0 = row.Cells(0).Value ' تجاهل
   Dim value1 = row.Cells(1).Value
   Dim value2 = row.Cells(2).Value
   Dim value3 = Val(row.Cells(3).Value)

   Dim neworw = dt.Rows.Add
   'neworw.Item("col0") = value0' تجاهل
   neworw.Item("col1") = value1
   neworw.Item("col2") = value2
   neworw.Item("col3") = value3
Next
(19-12-19, 10:03 PM)smalw كتب : [ -> ]
(19-12-19, 09:42 PM)محمد اسماعيل كتب : [ -> ]السلا معليكم ورحمة الله وبركاتة

اريد نقل او نسخ بيانات الداتاجريد فيو الي الداتاسيت مع فورمات الاعمدة لنصي0و1و2  ورقمي3 وتجاهل العمود الاول0.

كود :
Dim dt As New DataTable
'dt.Columns.Add("col0", GetType(String)) ' تجاهل
dt.Columns.Add("col1", GetType(String))
dt.Columns.Add("col2", GetType(String))
dt.Columns.Add("col3", GetType(Integer))

For Each row As DataGridViewRow In DATAG_CLIEN.Rows
   If row.IsNewRow Then Exit For

   'Dim value0 = row.Cells(0).Value ' تجاهل
   Dim value1 = row.Cells(1).Value
   Dim value2 = row.Cells(2).Value
   Dim value3 = Val(row.Cells(3).Value)

   Dim neworw = dt.Rows.Add
   'neworw.Item("col0") = value0' تجاهل
   neworw.Item("col1") = value1
   neworw.Item("col2") = value2
   neworw.Item("col3") = value3
Next

طيب واحدة واحدة انا الوظيفة دية بصدر بيها البيانات للاكسيل وهيا معتمدة علي الداتاسيت كدة انا هعوز احولها لداتاتابل عشان كدة طلبي كان التحويل لداتاسيت


كود :
  For Each dtSrc As DataTable In ds.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(ds.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(ds, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next
(19-12-19, 10:58 PM)محمد اسماعيل كتب : [ -> ]
(19-12-19, 10:03 PM)smalw كتب : [ -> ]
(19-12-19, 09:42 PM)محمد اسماعيل كتب : [ -> ]السلا معليكم ورحمة الله وبركاتة

اريد نقل او نسخ بيانات الداتاجريد فيو الي الداتاسيت مع فورمات الاعمدة لنصي0و1و2  ورقمي3 وتجاهل العمود الاول0.

كود :
Dim dt As New DataTable
'dt.Columns.Add("col0", GetType(String)) ' تجاهل
dt.Columns.Add("col1", GetType(String))
dt.Columns.Add("col2", GetType(String))
dt.Columns.Add("col3", GetType(Integer))

For Each row As DataGridViewRow In DATAG_CLIEN.Rows
   If row.IsNewRow Then Exit For

   'Dim value0 = row.Cells(0).Value ' تجاهل
   Dim value1 = row.Cells(1).Value
   Dim value2 = row.Cells(2).Value
   Dim value3 = Val(row.Cells(3).Value)

   Dim neworw = dt.Rows.Add
   'neworw.Item("col0") = value0' تجاهل
   neworw.Item("col1") = value1
   neworw.Item("col2") = value2
   neworw.Item("col3") = value3
Next

طيب واحدة واحدة انا الوظيفة دية بصدر بيها البيانات للاكسيل وهيا معتمدة علي الداتاسيت كدة انا هعوز احولها لداتاتابل عشان كدة طلبي كان التحويل لداتاسيت


كود :
  For Each dtSrc As DataTable In ds.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(ds.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(ds, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next

لم تذكر هل الداتاسيت موجوده من قبل عملت new DataSet
اذا موجوده من قبل، فقط اضفها (dt.Tables.Add(dt

لكن اعمل اسم للداتاتيبل
("new DataTable("tablename
(19-12-19, 11:02 PM)smalw كتب : [ -> ]
(19-12-19, 10:58 PM)محمد اسماعيل كتب : [ -> ]
(19-12-19, 10:03 PM)smalw كتب : [ -> ]
(19-12-19, 09:42 PM)محمد اسماعيل كتب : [ -> ]السلا معليكم ورحمة الله وبركاتة

اريد نقل او نسخ بيانات الداتاجريد فيو الي الداتاسيت مع فورمات الاعمدة لنصي0و1و2  ورقمي3 وتجاهل العمود الاول0.

كود :
Dim dt As New DataTable
'dt.Columns.Add("col0", GetType(String)) ' تجاهل
dt.Columns.Add("col1", GetType(String))
dt.Columns.Add("col2", GetType(String))
dt.Columns.Add("col3", GetType(Integer))

For Each row As DataGridViewRow In DATAG_CLIEN.Rows
   If row.IsNewRow Then Exit For

   'Dim value0 = row.Cells(0).Value ' تجاهل
   Dim value1 = row.Cells(1).Value
   Dim value2 = row.Cells(2).Value
   Dim value3 = Val(row.Cells(3).Value)

   Dim neworw = dt.Rows.Add
   'neworw.Item("col0") = value0' تجاهل
   neworw.Item("col1") = value1
   neworw.Item("col2") = value2
   neworw.Item("col3") = value3
Next

طيب واحدة واحدة انا الوظيفة دية بصدر بيها البيانات للاكسيل وهيا معتمدة علي الداتاسيت كدة انا هعوز احولها لداتاتابل عشان كدة طلبي كان التحويل لداتاسيت


كود :
  For Each dtSrc As DataTable In ds.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(ds.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(ds, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next

لم تذكر هل الداتاسيت موجوده من قبل عملت new DataSet
اذا موجوده من قبل، فقط اضفها (dt.Tables.Add(dt

لكن اعمل اسم للداتاتيبل
("new DataTable("tablename

هوا عرف الداتا سيت باول الوظيفة


كود :
 Public Sub GenerateExcel2007(ByVal p_strPath As String, ByVal p_dsSrc As DataSet)
       Using objExcelPackage As ExcelPackage = New ExcelPackage()
           For Each dtSrc As DataTable In p_dsSrc.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(dtSrc.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(dtSrc, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next

           If File.Exists(p_strPath) Then File.Delete(p_strPath)
           Dim objFileStrm As FileStream = File.Create(p_strPath)
           objFileStrm.Close()
           File.WriteAllBytes(p_strPath, objExcelPackage.GetAsByteArray())
       End Using
   End Sub
(19-12-19, 11:05 PM)محمد اسماعيل كتب : [ -> ]
(19-12-19, 11:02 PM)smalw كتب : [ -> ]
(19-12-19, 10:58 PM)محمد اسماعيل كتب : [ -> ]
(19-12-19, 10:03 PM)smalw كتب : [ -> ]
(19-12-19, 09:42 PM)محمد اسماعيل كتب : [ -> ]السلا معليكم ورحمة الله وبركاتة

اريد نقل او نسخ بيانات الداتاجريد فيو الي الداتاسيت مع فورمات الاعمدة لنصي0و1و2  ورقمي3 وتجاهل العمود الاول0.

كود :
Dim dt As New DataTable
'dt.Columns.Add("col0", GetType(String)) ' تجاهل
dt.Columns.Add("col1", GetType(String))
dt.Columns.Add("col2", GetType(String))
dt.Columns.Add("col3", GetType(Integer))

For Each row As DataGridViewRow In DATAG_CLIEN.Rows
   If row.IsNewRow Then Exit For

   'Dim value0 = row.Cells(0).Value ' تجاهل
   Dim value1 = row.Cells(1).Value
   Dim value2 = row.Cells(2).Value
   Dim value3 = Val(row.Cells(3).Value)

   Dim neworw = dt.Rows.Add
   'neworw.Item("col0") = value0' تجاهل
   neworw.Item("col1") = value1
   neworw.Item("col2") = value2
   neworw.Item("col3") = value3
Next

طيب واحدة واحدة انا الوظيفة دية بصدر بيها البيانات للاكسيل وهيا معتمدة علي الداتاسيت كدة انا هعوز احولها لداتاتابل عشان كدة طلبي كان التحويل لداتاسيت


كود :
  For Each dtSrc As DataTable In ds.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(ds.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(ds, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next

لم تذكر هل الداتاسيت موجوده من قبل عملت new DataSet
اذا موجوده من قبل، فقط اضفها (dt.Tables.Add(dt

لكن اعمل اسم للداتاتيبل
("new DataTable("tablename

هوا عرف الداتا سيت باول الوظيفة


كود :
 Public Sub GenerateExcel2007(ByVal p_strPath As String, ByVal p_dsSrc As DataSet)
       Using objExcelPackage As ExcelPackage = New ExcelPackage()
           For Each dtSrc As DataTable In p_dsSrc.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(dtSrc.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(dtSrc, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next

           If File.Exists(p_strPath) Then File.Delete(p_strPath)
           Dim objFileStrm As FileStream = File.Create(p_strPath)
           objFileStrm.Close()
           File.WriteAllBytes(p_strPath, objExcelPackage.GetAsByteArray())
       End Using
   End Sub

عفوا لم اتنبه للكود في ردك الاخير

لم اعرف من اين اتت ExcelPackage
(19-12-19, 11:14 PM)smalw كتب : [ -> ]
(19-12-19, 11:05 PM)محمد اسماعيل كتب : [ -> ]
(19-12-19, 11:02 PM)smalw كتب : [ -> ]
(19-12-19, 10:58 PM)محمد اسماعيل كتب : [ -> ]
(19-12-19, 10:03 PM)smalw كتب : [ -> ]
كود :
Dim dt As New DataTable
'dt.Columns.Add("col0", GetType(String)) ' تجاهل
dt.Columns.Add("col1", GetType(String))
dt.Columns.Add("col2", GetType(String))
dt.Columns.Add("col3", GetType(Integer))

For Each row As DataGridViewRow In DATAG_CLIEN.Rows
   If row.IsNewRow Then Exit For

   'Dim value0 = row.Cells(0).Value ' تجاهل
   Dim value1 = row.Cells(1).Value
   Dim value2 = row.Cells(2).Value
   Dim value3 = Val(row.Cells(3).Value)

   Dim neworw = dt.Rows.Add
   'neworw.Item("col0") = value0' تجاهل
   neworw.Item("col1") = value1
   neworw.Item("col2") = value2
   neworw.Item("col3") = value3
Next

طيب واحدة واحدة انا الوظيفة دية بصدر بيها البيانات للاكسيل وهيا معتمدة علي الداتاسيت كدة انا هعوز احولها لداتاتابل عشان كدة طلبي كان التحويل لداتاسيت


كود :
  For Each dtSrc As DataTable In ds.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(ds.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(ds, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next

لم تذكر هل الداتاسيت موجوده من قبل عملت new DataSet
اذا موجوده من قبل، فقط اضفها (dt.Tables.Add(dt

لكن اعمل اسم للداتاتيبل
("new DataTable("tablename

هوا عرف الداتا سيت باول الوظيفة


كود :
 Public Sub GenerateExcel2007(ByVal p_strPath As String, ByVal p_dsSrc As DataSet)
       Using objExcelPackage As ExcelPackage = New ExcelPackage()
           For Each dtSrc As DataTable In p_dsSrc.Tables
               Dim objWorksheet As ExcelWorksheet = objExcelPackage.Workbook.Worksheets.Add(dtSrc.TableName)
               objWorksheet.Cells("A1").LoadFromDataTable(dtSrc, True)
               objWorksheet.Cells.Style.Font.SetFromFont(New Font("Calibri", 10))
               objWorksheet.Cells.AutoFitColumns()

               Using objRange As ExcelRange = objWorksheet.Cells("A1:XFD1")
                   objRange.Style.Font.Bold = True
                   objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center
                   objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center
                   objRange.Style.Fill.PatternType = ExcelFillStyle.Solid
                   objRange.Style.Fill.BackgroundColor.SetColor(Color.Olive)
               End Using
           Next

           If File.Exists(p_strPath) Then File.Delete(p_strPath)
           Dim objFileStrm As FileStream = File.Create(p_strPath)
           objFileStrm.Close()
           File.WriteAllBytes(p_strPath, objExcelPackage.GetAsByteArray())
       End Using
   End Sub

عفوا لم اتنبه للكود في ردك الاخير

لم اعرف من اين اتت ExcelPackage

دة مكتبة مضافة للمشروع

دية طريقة حضرتك بالداتاتابل تمام

نسخنا الداتاتابل بالداتاسيت تمام


كود :
dtr.Columns.Add("col1", GetType(String))
       dtr.Columns.Add("col2", GetType(String))
       dtr.Columns.Add("col3", GetType(Integer))

       For Each row As DataGridViewRow In DATAG_CLIEN.Rows
           If row.IsNewRow Then Exit For

           'Dim value0 = row.Cells(0).Value ' تجاهل
           Dim value1 = row.Cells(1).Value
           Dim value2 = row.Cells(2).Value
           Dim value3 = Val(row.Cells(3).Value)

           Dim neworw = dtr.Rows.Add
           'neworw.Item("col0") = value0' تجاهل
           neworw.Item("col1") = value1
           neworw.Item("col2") = value2
           neworw.Item("col3") = value3
       Next

       Dim dt = ds.Tables(0)
       ds.Tables.Remove(dt)
       ds.Tables.Add(dt)


المشكلة دلوقتي ان العمود لما بيتصدر بيظهر العمود الارقام نصوص وبيظهر بخطأ convert to integer


يبقي نسخنا الاعمدة من اداة لاداة ولا شيء جديد فافضل طريقة اني انقل الداتاجريد فيو الي الداتاسيت وعمل ونفرت للاعمدة
انا بشكر حضرتك علي متابعة الموضوع

انا حاولت بطريقة اخري وحليت المشكلة بالداتاتابل والف شكر مرة اخري