Imports System.Data.SqlClient Imports System.IO Imports System.Net Imports System.Reflection Public Class FrmWaterMeter Dim cmd As New SqlCommand Dim da As New SqlDataAdapter Dim sql As String Dim colorArray(10) As Color Private Sub FrmWaterMeter_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Me.MdiParent = FrmMDI Dim conn As New SqlConnection Dim DT1 As New DataTable Dim DT2 As New DataTable Dim DT3 As New DataTable conn.ConnectionString = connstring conn.Open() cmd.Connection = conn ini_data() End Sub Private Sub DirOperation() Dim file_name As String OpenFileDialog1.Multiselect = True If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then file_name = OpenFileDialog1.FileName Else Exit Sub End If Dim sourceFileName As String = file_name ' Dim address2 As String = "ftp://ruitaileather.tpddns.cn:6666/k3/" & OpenFileDialog1.SafeFileName Dim address2 As String = "ftp://192.168.0.234:7777/" & OpenFileDialog1.SafeFileName 'Dim address2 As String = "ftp://192.168.0.234:7777/k3/" Dim userName As String = "admin" Dim password As String = "admin" Dim showUI As Boolean = True Dim connectionTimeout As Integer = 500 Dim client As WebClient = New WebClient client.Credentials = New NetworkCredential(userName, password) client.UploadFile(address2, sourceFileName) 'My.Computer.Network.UploadFile(sourceFileName, address2, userName, password, showUI, connectionTimeout) 'Dim request As FtpWebRequest = WebRequest.Create(address2) 'request.Credentials = New NetworkCredential(userName, password) 'request.Method = WebRequestMethods.Ftp.UploadFile 'Using fileStream As Stream = File.OpenRead(sourceFileName), ' ftpStream As Stream = request.GetRequestStream() ' fileStream.CopyTo(ftpStream) 'End Using End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click sql = "delete from rt_water_meter" cmd.CommandText = sql cmd.ExecuteNonQuery() ini_data() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim conn As New SqlConnection Dim file_name As String = "" Dim a As Integer = 0 Dim my_count As Integer = 0 conn.ConnectionString = connstring conn.Open() cmd.Connection = conn OpenFileDialog1.Multiselect = True If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then file_name = OpenFileDialog1.FileName Else Exit Sub End If ' Dim filepath As String = Me.Button28.Text Dim sourceFileName As String = file_name Dim address2 As String = "ftp://192.168.0.249:7788/k3/水表/" & OpenFileDialog1.SafeFileName Dim address3() As String address3 = Split(address2, "ftp://192.168.0.249:7788/") Dim add4 As String add4 = "d:\k3\" & address3(1) Dim userName As String = "matchy3c" Dim password As String = "Lafayette11" Dim showUI As Boolean = True Dim connectionTimeout As Integer = 500 Dim client As WebClient = New WebClient Dim filepath As String = "k3/水表" Dim wenjian As String Dim MY_NAME() As String For Each wenjian In OpenFileDialog1.FileNames MY_NAME = Split(wenjian, "\") Dim address22 As String = "ftp://" & my_ip & ":7788/" & filepath & "/" & MY_NAME(UBound(MY_NAME)) client.Credentials = New NetworkCredential(userName, password) client.Proxy = GlobalProxySelection.GetEmptyWebProxy() client.UploadFile(address22, wenjian) Dim dt As New DataTable Dim P() As String P = Split(wenjian, "\") Dim P1() As String P1 = Split(P(UBound(P)), ".") sql = "Select * FROM OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=Yes;IMEX=1;Database=" & wenjian & "')... [" & P1(0) & "$]" cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt) dt.Columns.Add("meter_no") For x As Integer = 0 To dt.Rows.Count - 1 dt.Rows(x).Item("meter_no") = Microsoft.VisualBasic.Right(P1(0), 1) Next 'dgv1.DataSource = dt Dim my_sqlbulk As New SqlBulkCopy(conn) my_sqlbulk.DestinationTableName = "dbo.rt_WATER_METER" my_sqlbulk.WriteToServer(dt) Next MsgBox("导入完成!") ini_data() End Sub Private Sub ini_data() Dim dt As New DataTable Dim dt1 As New DataTable Dim dt2 As New DataTable Dim dt3 As New DataTable Dim dt4 As New DataTable Dim dt5 As New DataTable Dim dt6 As New DataTable sql = "select year(MCGS_TIME) as 年, month(MCGS_TIME) as 月, day(MCGS_TIME) as 日,drum as 鼓號,cast(sum(water)/1000 as numeric(10,1)) as 用水量 from " & " (SELECT MCGS_TIME, MCGS_TIMES, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS drum, GUHAO0, SDWEND1, " & " SJWEND1, SHUI12, SHUI13 as water, meter_no " & " FROM RT_WATER_METER ) as p group by drum,year(MCGS_TIME), month(MCGS_TIME),day(MCGS_TIME) " cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt) dgv_main.DataSource = dt dgv_main.Columns(0).Width = 80 dgv_main.Columns(1).Width = 60 dgv_main.Columns(2).Width = 60 dgv_main.Columns(3).Width = 60 dgv_main.Columns(4).Width = 80 dgv_main.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText sql = "select drum as 鼓号,cast(sum(water)/1000 as numeric(10,1)) as 水量 from " & " (SELECT MCGS_TIME, MCGS_TIMES, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And " & " guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS drum, GUHAO0, SDWEND1, " & " SJWEND1, SHUI12, SHUI13 as water, meter_no " & " FROM RT_WATER_METER ) as p group by drum ORDER BY DRUM" cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt1) dt1.Columns.Add("白天") dt1.Columns.Add("晚上") Dim my_day As Integer For x As Integer = 0 To dt1.Rows.Count - 1 sql = "Select Day(MCGS_TIME) As Expr1 From RT_WATER_METER Group By Day(MCGS_TIME) Order By Expr1" cmd.CommandText = sql my_day = cmd.ExecuteScalar sql = "select cast(sum(水量)/1000 as numeric(10,1)) as 水量 from (SELECT CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) as 时, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And " & " guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS 鼓号,SHUI13 as 水量, meter_no as 数据来源 FROM RT_WATER_METER where CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) >=" & my_day & "07 And CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) <" & my_day & "19 ) as p where 鼓号='" & dt1.Rows(x).Item("鼓号") & "'" cmd.CommandText = sql da.SelectCommand = cmd dt1.Rows(x).Item("白天") = cmd.ExecuteScalar sql = "select cast(sum(水量)/1000 as numeric(10,1)) as 水量 from (SELECT CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) as 时, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And " & " guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS 鼓号,SHUI13 as 水量, meter_no as 数据来源 " & " FROM RT_WATER_METER " & " where CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) >=" & my_day & "19 And CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) <" & my_day + 1 & "07 ) as p where 鼓号='" & dt1.Rows(x).Item("鼓号") & "'" cmd.CommandText = sql da.SelectCommand = cmd dt1.Rows(x).Item("晚上") = cmd.ExecuteScalar Next dgv_drum.DataSource = DT1 dgv_drum.Columns(0).Width = 60 dgv_drum.Columns(1).Width = 80 dgv_drum.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText sql = "SELECT meter_no as 数据来源,cast(sum(SHUI13)/1000 as numeric(10,1)) as 用水量 FROM RT_WATER_METER group by meter_no" cmd.CommandText = sql da.SelectCommand = cmd da.Fill(DT2) dgv_meter.DataSource = DT2 dgv_meter.Columns(0).Width = 60 dgv_meter.Columns(1).Width = 80 dgv_meter.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText sql = "Select Day(MCGS_TIME) As Expr1 From RT_WATER_METER Group By Day(MCGS_TIME) Order By Expr1" cmd.CommandText = sql my_day = cmd.ExecuteScalar sql = "SELECT CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) as 时, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And " & " guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS 鼓号,SHUI13 as 水量, meter_no as 数据来源 " & " FROM RT_WATER_METER " & " where CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) >= " & my_day & "07 And CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) <" & my_day & "19 order by 鼓号,时 " cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt3) dgv_day.DataSource = dt3 sql = "SELECT CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) as 时, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And " & " guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS 鼓号,SHUI13 as 水量, meter_no as 数据来源 " & " FROM RT_WATER_METER " & " where CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) >= " & my_day & "19 And CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) <" & my_day + 1 & "07 order by 鼓号,时 " cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt4) dgv_night.DataSource = dt4 sql = "select 鼓号,cast(sum(水量) as numeric(10,0)) as 水量,数据来源 from (SELECT CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) as 时, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And " & " guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS 鼓号,SHUI13 as 水量, meter_no as 数据来源 " & " FROM RT_WATER_METER " & " where CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) >=" & my_day & "07 And CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) <" & my_day & "19 ) as p group by 鼓号,数据来源 order by 鼓号 " cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt5) dgv1.DataSource = dt5 sql = "select 鼓号,cast(sum(水量) as numeric(10,0)) as 水量,数据来源 from (SELECT CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) as 时, CASE WHEN (meter_no = 1 And guhao0 = 1) THEN 14 WHEN (meter_no = 1 And " & " guhao0 = 2) THEN 15 WHEN (meter_no = 1 And guhao0 = 3) THEN 16 WHEN (meter_no = 1 And guhao0 = 4) " & " THEN 17 WHEN (meter_no = 1 And guhao0 = 5) THEN 18 WHEN (meter_no = 1 And guhao0 = 6) " & " THEN 19 WHEN (meter_no = 2 And guhao0 = 7) THEN 20 WHEN (meter_no = 2 And guhao0 = 8) " & " THEN 21 WHEN (meter_no = 2 And guhao0 = 9) THEN 22 WHEN (meter_no = 2 And guhao0 = 10) " & " THEN 23 WHEN (meter_no = 2 And guhao0 = 11) THEN 24 WHEN (meter_no = 2 And guhao0 = 12) " & " THEN 25 WHEN (meter_no = 2 And guhao0 = 13) THEN 26 ELSE guhao0 END AS 鼓号,SHUI13 as 水量, meter_no as 数据来源 " & " FROM RT_WATER_METER " & " where CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) >= " & my_day & "19 And CONCAT(day(mcgs_time),SUBSTRING(CONVERT(VARCHAR(20), mcgs_time, 120), 12, 2)) < " & my_day + 1 & "07 ) as p group by 鼓号,数据来源 order by 鼓号 " cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt6) dgv2.DataSource = dt6 Dim dt7 As New DataTable sql = "SELECT YEAR(MCGS_TIME) AS 年, MONTH(MCGS_TIME) AS 月, DAY(MCGS_TIME) AS 日 FROM RT_WATER_METER GROUP BY YEAR(MCGS_TIME), MONTH(MCGS_TIME), DAY(MCGS_TIME)" cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt7) dgv.DataSource = dt7 dgv.AllowUserToAddRows = False dgv.Columns(0).Width = 70 dgv.Columns(1).Width = 50 dgv.Columns(2).Width = 50 End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click DirOperation() End Sub Private Sub Label3_Click(sender As Object, e As EventArgs) Handles Label3.Click End Sub End Class