2014-10-18 67 views
0

我想将文本文件中的信息存储到数据库中。这是我的,但不知道下一步该怎么做。解析文本文件以访问VB.NET中的数据库

Imports System.IO 
Public Class Form1 



Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
    Dim filename As String 
    filename = Application.StartupPath + "\darsReport.txt" 
    Dim iofile As New StreamReader(filename) 
    If File.Exists(filename) Then 
     Dim ioline As String 
     Dim ID, studentName, currentGPA, ReqGPA, expectedGraduation 

     ioline = iofile.ReadLine 

     While Not ioline = "" 
      Dim mysplit = Split(ioline, " ") 
      ID = mysplit(1) 
      studentName = mysplit(0) 
      expectedGraduation = mysplit(2) 
      currentGPA = mysplit(3) 
      ReqGPA = mysplit(4) 

     End While 

    Else 
     MsgBox(filename + "Does not exist.") 
    End If 
End Sub 
End Class 

回答

0

之后,您需要在您的数据库表上运行INSERT查询。要做到这一点,最简单的方法是使用SqlCommand类(假设你有一个SQL Server数据库):

Dim con as new SqlConnection("Your Connection String Here") 
con.Open() 
Dim cmd as New SqlCommand("", con) 
cmd.CommandText = String.Format("INSERT INTO [YourTable](ID, Name, CurrentGPA) VALUES({0}, '{1}', {2})", ID, studentName, currentGPA) 
cmd.ExecuteNonQuery() 
con.Close() 

使用你的循环和你行这里面的代码块将被插入到数据库中。但是请注意,这确实是这样做的基本方式,应该编写更多代码来正确处理异常,无效数据等。此外,可以使用SQL注入轻松地利用此方法。 .NET中存在更好的应用程序(例如DataSet和Entity Framework),它们应该用于此任务。

+0

我正在使用MS Access 2013. – agirlinstates 2014-10-18 18:29:02

+0

@agirlinstates:没问题。你可以在上面的代码中使用'OledbConnection'而不是'SqlConnnection'和'OledbCommand'而不是'SqlCommand'。其余部分应该按原样运行。 – dotNET 2014-10-19 05:38:00