0

我正在使用 streamwriter 从 sql server 中提取数字来填充文本文件。但是如果它是 0,它会切断第一个数字。如果字符串只有 8 个字符长,如何自动将该数字添加到文本文件中?

  Dim outputStream As StreamWriter = New StreamWriter(fileName)

        'Get all values from the current item on the reader as long as Read() returns true...
        Do While reader.Read
            'make an array the length of the available fields
            Dim values(reader.FieldCount - 1) As Object
            'get all the field values
            reader.GetValues(values)

            'write the text version of each value to a comma seperated string
            Dim line As String = String.Format("{0,-10}" & vbTab & "{1,-20}" & vbTab & "{2,-1}", values)
            'write the csv line to the file
            outputStream.WriteLine("091869" & vbTab & vbTab & vbTab & line)
        Loop

所以现在如果数字是(011111111)它会返回(11111111)而不是(011111111)。我需要整数。

4

2 回答 2

2

尝试这样的事情:

select right('000000000'+convert(varchar(9), NUMBER), 9)

这将右对齐,将数字填零为 9 个字符。根据需要进行调整。

于 2013-09-26T17:50:51.920 回答
1

您可以更改 sql 查询。我不知道现在的语句是什么,但是您可以在 SQL 查询中将该列转换为 varchar(9) 以防止它切断尾随的 0。

于 2013-09-26T17:46:52.283 回答