 |
|
สอบถามการ browse ไฟล์ .log แล้วแยกไปลง SQL ครับ (VS2010+MS SQL Server 2008) |
|
 |
|
|
 |
 |
|
ผมขอแบ่งเป็นข้อๆนะครับ คือ
1. ผมอยากจะ browse ไฟล์ ซึ่งเป็นไฟล์นามสกุล .log แล้วให้มันโชว์ขึ้นมา
ส่วนนี้ผมทำแล้วโดยใช้ richtextbox ตามรูปครับ
ซึ่งข้อมูลในไฟล์ก็ตามนั้นเลยครับ ขั้นด้วยเครื่องหมาย , ซึ่งแบ่งแล้วเป็น 13 ฟิลด์ครับ

2. หลังจากกดปุ่ม แยกข้อมูล ผมอยากให้ข้อมูลในนั้น บันทึกเข้าไปใน SQL ครับ
โดยแบ่งฟิลด์ตามเครื่องหมาย , ครับ
ในส่วนนี้ผมสร้างฐานข้อมูลไว้แล้วครับ
และนี่คือ Code ที่ผมใช้อยู่ตอนนี้ครับ ตอนนี้ทำได้เฉพาะ browse log file กับ เชื่อมฐานข้อมูล ครับ
หลังจากนี้ผมไม่รู้จะไปยังไงต่อครับ ท่านใดพอจะช่วยเหลือได้บ้างครับ
หากผม code ที่ผมใช้ไม่เหมาะ ท่านใดมีรูปแบบอื่นๆก็แนะนำได้นะครับ
Code (VB.NET)
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Public Class Form1
Dim sqlcon As SqlConnection
Dim ds As DataSet
Dim da As SqlDataAdapter
Dim myFileDlog As New OpenFileDialog()
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
Dim myFileDlog As New OpenFileDialog()
'look for files in the c drive
myFileDlog.InitialDirectory = "c:\"
'specifies what type of data files to look for
myFileDlog.Filter = "All Files (*.*)|*.*"
'specifies which data type is focused on start up
myFileDlog.FilterIndex = 2
'Gets or sets a value indicating whether the dialog box restores the current directory before closing.
myFileDlog.RestoreDirectory = True
'seperates message outputs for files found or not found
If myFileDlog.ShowDialog() = _
DialogResult.OK Then
End If
'Adds the file directory to the text box
txtFileDirectory.Text = myFileDlog.FileName
RichTextBox1.Text = My.Computer.FileSystem.ReadAllText(myFileDlog.FileName)
End Sub
Private Sub txtFileDirectory_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFileDirectory.TextChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Sub showData()
ds = New DataSet
da = New SqlDataAdapter("SELECT * FROM Foreign_visitor_logs", sqlcon)
da.Fill(ds, "Foreign_visitor_logs")
'DataGridView1.DataSource = ds.Tables("Foreign_visitor_logs")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Try
sqlcon = New SqlConnection("Server=.;Database=visitorTRU;User Id=sa;Password=1234")
sqlcon.Open()
MsgBox("Connected")
Catch ex As Exception
MsgBox("Error")
End Try
Call showData()
Dim filename As String
filename = txtFileDirectory.Text
Dim iofile As New StreamReader(filename)
Dim ioline As String
Dim Fl_ID, Fl_Date, Fl_Time, Fl_Description, Fl_IPAddress
ioline = iofile.ReadLine
While Not ioline = ""
Dim mysplit = Split(ioline, ",")
Fl_ID = mysplit(0)
Fl_Date = mysplit(1)
Fl_Time = mysplit(2)
Fl_Description = mysplit(3)
Fl_IPAddress = mysplit(4)
Dim inscmd As New SqlCommand
inscmd.CommandText = ("insert into Foreign_visitor_logs values('" + mysplit(0) + "')")
Print(inscmd.CommandText)
inscmd.Connection = sqlcon
inscmd.ExecuteNonQuery()
inscmd.Parameters.Clear()
MsgBox("Your booking has been successfully")
End While
End Sub
End Class
Tag : .NET, Ms SQL Server 2008, VS 2010 (.NET 4.x)
|
ประวัติการแก้ไข 2015-05-13 19:44:00 2015-05-15 07:04:39
|
 |
 |
 |
 |
Date :
2015-05-13 18:27:02 |
By :
persineraz |
View :
1194 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ดูจากการเขียนก็มาถูกทางแล้วนี่ครับ ว่าแต่ตอนี้มัน Insert ได้หรือเปล่าครับ
|
 |
 |
 |
 |
Date :
2015-05-14 09:57:35 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้ยัง insert ไม่ได้ครับ ติดตรงนี้อ่ะครับ
หลังจากกดปุ่ม แยกข้อมูล ขึ้น Connect แล้วก็ขึ้นแบบนี้ต่อเลยครับ

|
 |
 |
 |
 |
Date :
2015-05-14 10:53:30 |
By :
persineraz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เหมือนจะ Insert พวก Key ที่เป็น FK ไม่ทราบน่ะครับ
|
 |
 |
 |
 |
Date :
2015-05-14 16:18:50 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้ insert ได้แล้วครับ แต่ได้ข้อมูลไม่ครบ มันตัดบรรทัดแรกออกไปครับ
อันนี้คือข้อมูลใน log file ครับ จะเห็นว่ามี 10 บรรทัด

ส่วนนี่คือข้อมูลที่ insert ได้ 9 บรรทัด ครับ จะเห็นว่าบรรทัดที่ Fl_ID คือ 24 ไม่ถูกบรรทึกเข้ามาครับ

ตอนผมเช็คดูตรงนี้ก็ขึ้นแถว 24 นะครับ

และนี่คือ Code ที่ผมใช้ทั้งหมดครับ มีการเปลี่ยนแปลงจากตอนแรกที่ใช้นะครับ
ส่วนของการ insert อยู่ในปุ่ม Button3 ครับ
รบกวนทุกๆท่านด้วยนะครับ ขอบคุณมากครับ
Code (VB.NET)
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Public Class Form1
Dim sqlcon As SqlConnection
Dim ds As DataSet
Dim da As SqlDataAdapter
Dim myFileDlog As New OpenFileDialog()
Public Sub connection()
Try
sqlcon = New SqlConnection("Server=.;Database=visitorTRU;User Id=sa;Password=1234")
sqlcon.Open()
MsgBox("Connected")
Catch ex As Exception
MsgBox("Error")
End Try
End Sub
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
Dim myFileDlog As New OpenFileDialog()
'look for files in the c drive
myFileDlog.InitialDirectory = "c:\"
'specifies what type of data files to look for
myFileDlog.Filter = "All Files (*.*)|*.*"
'specifies which data type is focused on start up
myFileDlog.FilterIndex = 2
'Gets or sets a value indicating whether the dialog box restores the current directory before closing.
myFileDlog.RestoreDirectory = True
'seperates message outputs for files found or not found
If myFileDlog.ShowDialog() = _
DialogResult.OK Then
End If
'Adds the file directory to the text box
txtFileDirectory.Text = myFileDlog.FileName
RichTextBox1.Text = My.Computer.FileSystem.ReadAllText(myFileDlog.FileName)
End Sub
Private Sub txtFileDirectory_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFileDirectory.TextChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Sub showData()
ds = New DataSet
da = New SqlDataAdapter("SELECT * FROM Foreign_visitor_logs", sqlcon)
da.Fill(ds, "Foreign_visitor_logs")
DataGridView1.DataSource = ds.Tables("Foreign_visitor_logs")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Try
sqlcon = New SqlConnection("Server=.;Database=visitorTRU;User Id=sa;Password=1234")
sqlcon.Open()
MsgBox("Connected")
Catch ex As Exception
MsgBox("Error")
End Try
Dim filename As String
filename = txtFileDirectory.Text
Dim iofile As New StreamReader(filename)
Dim ioline As String
Dim Fl_ID, Fl_Date, Fl_Time, Fl_Description, Fl_IPAddress, Fl_HostName, Fl_MacAddress, Fl_Username, Fl_TransactionID, Fl_QResult, Fl_Probationtime, Fl_CorrelationID, Fl_Dhcid As String
' ioline = iofile.ReadLine
'Dim LineRichtext As Integer = TextBox1.Lines.Length
'iofile.ReadLine()
While iofile.Peek() <> -1
ioline = iofile.ReadLine
Dim mysplit = Split(ioline, ",")
Fl_ID = mysplit(0)
Fl_Date = mysplit(1)
Fl_Time = mysplit(2)
Fl_Description = mysplit(3)
Fl_IPAddress = mysplit(4)
Fl_HostName = mysplit(5)
Fl_MacAddress = mysplit(6)
Fl_Username = mysplit(7)
Fl_TransactionID = mysplit(8)
Fl_QResult = mysplit(9)
Fl_Probationtime = mysplit(10)
Fl_CorrelationID = mysplit(11)
Fl_Dhcid = mysplit(12)
Dim str As String
str = "insert into Foreign_visitor_logs (Fl_ID, Fl_Date, Fl_Time, Fl_Description, Fl_IPAddress, Fl_HostName, Fl_MacAddress, Fl_Username, Fl_TransactionID, Fl_QResult, Fl_Probationtime, Fl_CorrelationID, Fl_Dhcid) values('" + mysplit(0) + "','" + mysplit(1) + "','" + mysplit(2) + "','" + mysplit(3) + "','" + mysplit(4) + "','" + mysplit(5) + "','" + mysplit(6) + "','" + mysplit(7) + "','" + mysplit(8) + "','" + mysplit(9) + "','" + mysplit(10) + "','" + mysplit(11) + "','" + mysplit(12) + "')"
Dim myCommand As SqlCommand = New SqlCommand(str, sqlcon)
Try
sqlcon.Open()
myCommand.ExecuteNonQuery()
myCommand.Parameters.Clear()
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If (sqlcon.State = ConnectionState.Open) Then
sqlcon.Close()
End If
End Try
End While
MessageBox.Show("successfully")
Call showData()
End Sub
End Class
|
ประวัติการแก้ไข 2015-05-14 16:37:51 2015-05-14 16:50:09 2015-05-14 17:05:55 2015-05-14 19:30:44
 |
 |
 |
 |
Date :
2015-05-14 16:31:08 |
By :
persineraz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|