Нема описа
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

eform_measure.vb 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. Imports System.Data.SqlClient
  2. Public Class eform_measure
  3. Dim cmd As New SqlCommand
  4. Dim da As New SqlDataAdapter
  5. Dim sql As String
  6. Dim colorArray(10) As Color
  7. Dim conn As New SqlConnection
  8. Private Sub eform_measure_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  9. conn.ConnectionString = connstring
  10. cmd.Connection = conn
  11. sql = "WITH CTE AS (SELECT timestamp, data, PATINDEX('%[^0-9.-]%', data) AS pos
  12. FROM HT_sf), CTE2 AS
  13. (SELECT timestamp, data, CASE WHEN pos > 0 THEN LEFT(data, pos - 1) ELSE data END AS data1,
  14. CASE WHEN pos > 0 THEN SUBSTRING(data, (pos - 1) + PATINDEX('%[0-9.-]%', SUBSTRING(data, pos,
  15. LEN(data))), LEN(data)) ELSE NULL END AS data2_orig
  16. FROM CTE AS CTE_1)
  17. SELECT timestamp, data, data1, CASE WHEN data2_orig IS NOT NULL AND CONVERT(DECIMAL(18, 2), data2_orig)
  18. >= 0 THEN N'合计' + CONVERT(VARCHAR(20), CONVERT(DECIMAL(18, 2), data2_orig))
  19. ELSE '' END AS data2
  20. FROM CTE2 AS CTE2_1
  21. ORDER BY timestamp DESC"
  22. cmd.CommandText = sql
  23. Dim dt As New DataTable
  24. da.SelectCommand = cmd
  25. da.Fill(dt)
  26. DataGridView1.DataSource = dt
  27. End Sub
  28. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  29. sql = "WITH CTE AS (SELECT timestamp, data, PATINDEX('%[^0-9.-]%', data) AS pos
  30. FROM HT_sf), CTE2 AS
  31. (SELECT timestamp, data, CASE WHEN pos > 0 THEN LEFT(data, pos - 1) ELSE data END AS data1,
  32. CASE WHEN pos > 0 THEN SUBSTRING(data, (pos - 1) + PATINDEX('%[0-9.-]%', SUBSTRING(data, pos,
  33. LEN(data))), LEN(data)) ELSE NULL END AS data2_orig
  34. FROM CTE AS CTE_1)
  35. SELECT timestamp, data, data1, CASE WHEN data2_orig IS NOT NULL AND CONVERT(DECIMAL(18, 2), data2_orig)
  36. >= 0 THEN N'合计' + CONVERT(VARCHAR(20), CONVERT(DECIMAL(18, 2), data2_orig))
  37. ELSE '' END AS data2
  38. FROM CTE2 AS CTE2_1
  39. ORDER BY timestamp DESC"
  40. cmd.CommandText = sql
  41. Dim dt As New DataTable
  42. da.SelectCommand = cmd
  43. da.Fill(dt)
  44. DataGridView1.DataSource = dt
  45. End Sub
  46. End Class