【问题标题】:How to add Text at the end of each line vb.net如何在每行 vb.net 的末尾添加文本
【发布时间】:2014-04-17 15:21:30
【问题描述】:

我正在使用 VB.NET (2013) 开发一个程序,该程序适用于本地数据库 (sql server 2008 R2), 该程序正在将数据库表转换为文本文件, 那么如何在该文本文件的每一行末尾的每一行的最后一个字段之后添加一些文本, 谢谢,对不起我的英语

If mytable.HasRows Then
                Dim outputStream As StreamWriter = New StreamWriter(FileName & "table.txt", True, GetEncoding)
                Dim row As Integer = 0
                myConnection.open()
                Do While mytable.Read                    
                    Dim header As Integer = 0
                    Dim counter As Integer = 0
                    Dim fieldCount As Integer = mytable.FieldCount - 1

                    While counter <= fieldCount
                        If counter = 0 Then
                            outputStream.Write("None ," )
                        End If
                        If counter = 3 Then
                            outputStream.Write("123456 ," )
                        End If
                        If counter = 7 Then
                            outputStream.Write("None ," )
                        End If

                        If counter <> fieldCount Then
                            outputStream.Write(mytable(counter).ToString() & ",")
                        Else
                            outputStream.WriteLine(mytable(counter).ToString())
                        End If
                        counter += 1
                    End While
                    row += 1

                Loop
                mytable.Close()
                outputStream.Close()
                myConnection.Close()
            End If

【问题讨论】:

  • 你并没有真正问太多问题。 MyConnection 在您的帖子中看起来相当不必要。 WriteLine 将添加换行符,因此如果您想添加一些内容,请在调用之前完成。
  • 您要替换第 0,3 和 7 列的内容吗?你想在每一行的末尾写什么?请更好地解释您的要求。一个示例文本行可能非常有用
  • 实际上我不想更改列的内容我只想在文本文件中列的输出之间添加一个文本,并且对于我想要添加的每一行的末尾例如“,真”之类的东西

标签: sql-server vb.net text add


【解决方案1】:

使用您提供的示例,您可以替换

                    If counter <> fieldCount Then
                        outputStream.Write(mytable(counter).ToString() & ",")
                    Else
                        outputStream.WriteLine(mytable(counter).ToString())
                    End If

与:

                    If counter <> fieldCount Then
                        outputStream.Write(mytable(counter).ToString() & ",")
                    Else
                        outputStream.WriteLine(mytable(counter).ToString() & "What ever you want to write")
                    End If

【讨论】:

    【解决方案2】:

    这是对您的问题已回答的代码的重构:

    Imports System.Data.SqlClient
    Imports System.Data
    Public Class Class1
        Public Sub Writefile()
            Dim ConnectionString As String = ""
            Using cnn As New SqlConnection(ConnectionString)
                cnn.Open()
                Using cmd As SqlCommand = cnn.CreateCommand
                    cmd.CommandType = System.Data.CommandType.Text
                    cmd.CommandText = "SELECT * FROM SomeTable"
                    Using da As New SqlDataAdapter
                        Using ds As New DataSet
                            da.Fill(ds)
                            Using sw As New System.IO.StreamWriter("C:\myfile.txt")
                                For Each r As DataRow In ds.Tables(0).Rows
                                    Dim output As New System.Text.StringBuilder
                                    For c As Integer = 0 To ds.Tables(0).Columns.Count - 1
                                        Select Case c
                                            Case 0
                                                output.Append("none ,")
                                            Case 3
                                                output.Append("123456 ,")
                                            Case 7
                                                output.Append("none ,")
                                            Case Else
                                                output.Append(r(c).ToString)
                                                If c < ds.Tables(0).Columns.Count - 1 Then
                                                    output.Append(",")
                                                End If
                                        End Select
                                        sw.WriteLine(output.ToString)
                                    Next
                                Next
                            End Using
                        End Using
                    End Using
                End Using
            End Using
        End Sub
    End Class
    

    此示例还包括数据库调用。 “使用”块将确保您的对象也被适当地处理和关闭。我一直使用这种模式和类似的模式来编写文本文件。

    【讨论】:

      猜你喜欢
      • 2013-04-05
      • 1970-01-01
      • 2012-07-03
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 2022-06-11
      相关资源
      最近更新 更多