50 pts.
 Formatting VB Script
Hello programmer's. I have the following VB script in VS2005, ASP.NET that writes sql data to a text file. Can someone help me understanding whether I can format the paydate and checkamt fields? Please see the two sample format problems below. I need to reformat certain values. Do I do the formatting in the Dim section or in the if not – then section or in the streamwriter section? Thank you.

Two Sample Format Problems:

1. Using the below VB script in asp.net the “paydate” is outputting to the checkfile.txt as 1/1/2010. I need to format it so it outputs as 1/1/10.

2. Using the below VB script in asp.net the “checkamt” is outputting to the checkfile.txt as 848.7000. I need to format it so it outputs as 848.70.

'************************START CREATING THE OUTPUT TEXT FILE***********************************

Dim flag As Boolean

Dim ds As New DataSet

Dim da As New SqlDataAdapter objComm = New SqlCommand("select * from tbl2txt", objConn)

objComm.CommandTimeout = 500

''The flag is to let me know which authentication response to issue

flag = False da.SelectCommand = objComm

da.Fill(ds)

intFileNum = ds.Tables(0).Rows.Count

objConn.Close()

If intFileNum > 0 Then

flag = True

'START CREATE THE OUTPUT FILE HERE

'extract all fields out 1st, then format and write using the StreamWriter Dim sw As New System.IO.StreamWriter("c:CheckFile.txt")

For Each dr As DataRow In ds.Tables(0).Rows

Dim Strpaydate As String = String.Empty

Dim Strcheckamt As String = String.Empty

Dim Strname As String = String.Empty

Dim Stradd1 As String = String.Empty

Dim Stradd2 As String = String.Empty

Dim Stradd3 As String = String.Empty

Dim Stradd4 As String = String.Empty

Dim Strpostcode As String = String.Empty

Dim Strinvno As String = String.Empty

Dim Strdocdate As String = String.Empty

Dim Strinvoiceamt As String = String.Empty

Dim Strvendor As String = String.Empty

Dim Strcheckno As String = String.Empty

Dim Strsname As String = String.Empty

Dim StrGrp As String = String.Empty

Dim StrGroupName As String = String.Empty

'Make sure the value coming back from the DataBase is Not Null. If it has value then write it using the StreamWriter to the text file. WriteLine makes a new line for each entry

If Not IsDBNull(dr("paydate")) Then Strpaydate = (dr("paydate"))

If Not IsDBNull(dr("checkamt")) Then Strcheckamt = Format(dr("checkamt"))

If Not IsDBNull(dr("name")) Then Strname = (dr("name"))

If Not IsDBNull(dr("add1")) Then Stradd1 = (dr("add1"))

If Not IsDBNull(dr("add2")) Then Stradd2 = (dr("add2"))

If Not IsDBNull(dr("add3")) Then Stradd3 = (dr("add3"))

If Not IsDBNull(dr("add4")) Then Stradd4 = (dr("add4"))

If Not IsDBNull(dr("postcode")) Then Strpostcode = (dr("postcode")) If Not IsDBNull(dr("invno")) Then Strinvno = (dr("invno"))

If Not IsDBNull(dr("docdate")) Then Strinvno = (dr("docdate"))

If Not IsDBNull(dr("invoiceamt")) Then Strinvoiceamt = (dr("invoiceamt"))

If Not IsDBNull(dr("vendor")) Then Strvendor = (dr("vendor"))

If Not IsDBNull(dr("checkno")) Then Strcheckno = (dr("checkno"))

If Not IsDBNull(dr("sname")) Then Strsname = (dr("sname"))

If Not IsDBNull(dr("Grp")) Then StrGrp = (dr("Grp"))

If Not IsDBNull(dr("GroupName")) Then StrGroupName = (dr("GroupName"))

'Now write to the streamwriter, adding a space between the values

sw.WriteLine(Strpaydate + " " + " " + Strcheckamt + " " + Strname + " " + Stradd1 + " " + Stradd2 " " + Stradd3 + " " + Stradd4 + " " + Strpostcode + " " + Strdocdate +" " + Strinvoiceamt + " " + Strvendor  " " + Strinvno + " " + " " + Strcheckno + " " + Strsname + " " + StrGrp + " " + StrGroupName)

Next

'Clean Up

sw.Flush()

sw.Close()

'Clean Up

objConn.Dispose()

ds.Dispose()

da.Dispose() End If



Software/Hardware used:
Visual Studio
ASKED: January 13, 2010  9:26 PM
UPDATED: December 15, 2010  11:15 PM

Answer Wiki:
You should do your formatting only during output just incase you wanted to do a computation on the variable there is nothing stopping from doing this prior to output. But as per MSDN documentation: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx ----------------- If the paydate is stored in the database as a date and the checkamt as numeric (and not as strings), and you are not going to perform calculations in your application, you could use the <a href="http://msdn.microsoft.com/en-us/library/ms187928.aspx">CONVERT function</a> in your query to convert them into an formatted string..
Last Wiki Answer Submitted:  December 15, 2010  11:15 pm  by  ItGuy400   100 pts.
All Answer Wiki Contributors:  ItGuy400   100 pts.
To see all answers submitted to the Answer Wiki: View Answer History.


Discuss This Question:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _