0

Windowsスケジューラで実行されるプログラムがあります...実行するたびに、データベースでクエリを実行し、情報を取得して電子メールで送信します。それはすべて宣伝どおりに機能しますが、日付と金額をフォーマットする方法がわからないようです。私のC#コードは次のとおりです。

Imports System.Net.Mail
Imports System.Linq

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        Try
            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            Me.Paid_Out_TbTableAdapter.Fill(Me.DataSet.Paid_Out_Tb)
            Dim payouts = _
            <html>
                <body>
                    <table border="1">
                        <tr><th>Store #</th><th>Date</th><th>Amount</th><th>User</th><th>Comment</th></tr>
                        <%= From paidOut In Me.DataSet.Paid_Out_Tb.AsEnumerable _
                            Select <tr><td><%= paidOut.Store_Id %></td>
                                       <td><%= paidOut.Paid_Out_Datetime %></td>
                                       <td><%= paidOut.Paid_Out_Amount %></td>
                                       <td><%= paidOut.Update_UserName %></td>
                                       <td><%= paidOut.Paid_Out_Comment %></td></tr> %>
                    </table>
                </body>

            </html>


            SmtpServer.Credentials = New  _
            Net.NetworkCredential("****", "****")
            SmtpServer.Port = 25
            SmtpServer.Host = "10.0.*.*"
            mail = New MailMessage()
            mail.From = New MailAddress("***@***.com")
            mail.To.Add("***@***.com")
            'mail.CC.Add("***@**.com")
            mail.Subject = "Paid Out Report for 1929"
            mail.IsBodyHtml = True
            mail.Body = payouts.ToString()
            SmtpServer.Send(mail)
            'MsgBox("mail send")
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try






        Me.Close()

    End Sub

私のクエリは次のとおりです。

SELECT        Store_Id, Paid_Out_Amount, Paid_Out_Comment, Paid_Out_Datetime, Update_UserName, Till_Number
FROM            Paid_Out_Tb
WHERE        (Store_Id = 1929) AND (Paid_Out_Datetime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()) - 1, 0)) AND (Paid_Out_Datetime < DATEADD(day, DATEDIFF(day, 0, 
                         GETDATE()), 0)) AND (Paid_Out_Amount > 20) OR
                         (Store_Id = 1929) AND (Paid_Out_Datetime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()) - 1, 0)) AND (Paid_Out_Datetime < DATEADD(day, DATEDIFF(day, 0, 
                         GETDATE()), 0)) AND (Paid_Out_Comment LIKE N'%' + 'Filter' + '%')

最後に、出力は次のとおりです。

Store # Date    Amount  User    Comment
1929    2012-07-22T12:18:23.33  29.0000 KAG PIZZA AND TIP FOR STORE 

ご覧のとおり、日付は長い形式です。7/22/12と$29.00の金額が欲しいのですが...出力を正しくフォーマットするにはどうすればよいですか?

4

1 に答える 1

1

.ToString()を使用して、正しいフォーマット文字列を渡して、必要なフォーマットを取得できるはずです。DataSetに指定されているタイプ(ある場合)によっては、事前に変換を行う必要がある場合があります。

<td><%= Convert.ToDateTime(paidOut.Paid_Out_Datetime).ToString("M/d/yy") %></td>
<td><%= Convert.ToDecimal(paidOut.Paid_Out_Amount).ToString("0.00") %></td>
于 2012-07-30T15:31:55.267 に答える