سؤال

هذا قد يكون قليلا على سخيفة الجانب من الأمور ولكن أنا في حاجة الى ارسال محتويات DataTable (غير معروف الأعمدة محتويات غير معروفة) عبر رسالة البريد الإلكتروني.الفكرة الأساسية هي حلقة أكثر من الصفوف و الأعمدة و إخراج جميع محتويات الخلية إلى بـ stringbuilder باستخدام .ToString().

التنسيق قضية كبيرة على الرغم من.أي نصائح أو أفكار حول كيفية جعل هذه النظرة "للقراءة" في شكل النص ؟

أنا أفكر في "الحشو" كل خلية مع المساحات الفارغة, ولكن أنا أيضا بحاجة إلى تقسيم بعض الخلايا في خطوط متعددة ، وهذا ما يجعل بـ stringbuilder نهج فوضوي قليلا ( لأن السطر الثاني من النص من العمود الأول يأتي بعد السطر الأول من النص في العمود الأخير ، إلخ.)

هل كانت مفيدة؟

المحلول

من شأنه تحويل datatable إلى HTML الجدول إرسال HTML الإلكتروني يكون بديل ؟ التي من شأنها أن تجعل أجمل بكثير على المتلقي إذا كان العميل يدعم ذلك.

نصائح أخرى

هذا وسوف تبدو رهيبة حقا الحل ولكن ربما هذا العمل:

تجعل DataTable المحتويات في DataGrid/GridView (على افتراض ASP.NET) ثم شاشة تتخلص من ذلك.

لقد أخبرتك أن الأمر لن يكون فوضوي.

الحصول على أقصى حجم لكل عمود الأولى.وبهذه الطريقة varchar(255) عمود يحتوي على الرموز البريدية لن تأخذ مساحة كبيرة جدا.

ربما يمكنك تقسيم الجدول الكامل بدلا من تقسيم خطوط واحدة.وضع كاملة الجزء الأيمن من الجدول في الثانية بـ stringbuilder ووضعها تحت الطاولة الأولى.

يمكنك أيضا إعطاء المستخدم خيار إنشاء بفواصل النص والمتلقي يمكن استيراد جدول إلى جدول بيانات.

حلقة من خلال datatable و إرسال البريد الإلكتروني HTML - توليد html الجدول من datatable & إرساله الجسم من البريد الإلكتروني.

حصلت على هذا العامل من خلال كتابة مخصص المنسق خصيصا لهذه المهمة.رمز حوالي 120 -130 خطوط طويلة, لذلك أنا لا أعرف إذا كان ينبغي لي أن نشر هنا كإجابة (ربما ميزة إرفاق .cs الملفات إلى موضوع جيد تدرين!) .

على أي حال, إذا كان أي شخص مهتم في هذا اسمحوا لي أن أعرف وأنا سوف توفر التعليمات البرمجية.

هل يجب أن تكون منسقة بشكل جيد ، أو النظام الآلي التقاط رسالة البريد على الآخر ؟ إذا كان هذا الأخير فقط استخدام datatable هو .WriteXml الأسلوب ().

يمكنك أن تفعل شىء من هذا القبيل (إذا VB):

Dim Str As String = ""
    'Create File if doesn't exist
        Dim FILE_NAME As String = "C:\temp\Custom.txt"
        If System.IO.File.Exists(FILE_NAME) = False Then
            System.IO.File.Create(FILE_NAME)
        End If

        Dim objWriter As System.IO.StreamWriter
        Try
            objWriter = New System.IO.StreamWriter(FILE_NAME)
        Catch ex As System.IO.IOException
            MsgBox("Please close the file: (C:\temp\Custom.txt) before proceeding" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Exclamation)
            objWriter = Nothing
            Err = True
        End Try


'I assume you know how to write to text file.
'Say my datagridview is named "dgrid"

Dim x,y as integer

For x = 0 to dgrid.rows.count -1
    For y = 0 to dgrid.columns.count - 1
       Str = dgrid.Rows(x).Cells(y).Values & " "
   Next y
Next x

objWriter.Close()

الموارد.

أو حتى يمكنك توليد CSV ملف من DataTable.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top