منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] نقل البيانات من الداتاجريد فيو الي الداتاسيت - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] نقل البيانات من الداتاجريد فيو الي الداتاسيت (/showthread.php?tid=32606)



نقل البيانات من الداتاجريد فيو الي الداتاسيت - محمد اسماعيل - 19-12-19

السلا معليكم ورحمة الله وبركاتة

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


RE: نقل البيانات من الداتاجريد فيو الي الداتاسيت - smalw - 19-12-19

(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



RE: نقل البيانات من الداتاجريد فيو الي الداتاسيت - محمد اسماعيل - 19-12-19

(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



RE: نقل البيانات من الداتاجريد فيو الي الداتاسيت - smalw - 19-12-19

(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


RE: نقل البيانات من الداتاجريد فيو الي الداتاسيت - محمد اسماعيل - 19-12-19

(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



RE: نقل البيانات من الداتاجريد فيو الي الداتاسيت - smalw - 19-12-19

(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


RE: نقل البيانات من الداتاجريد فيو الي الداتاسيت - محمد اسماعيل - 19-12-19

(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


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


RE: نقل البيانات من الداتاجريد فيو الي الداتاسيت - محمد اسماعيل - 20-12-19

انا بشكر حضرتك علي متابعة الموضوع

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