【问题标题】:VB.NET Execute a looping query and display its result in 1 datagridviewVB.NET 执行循环查询并在 1 个 datagridview 中显示其结果
【发布时间】:2020-02-13 19:37:52
【问题描述】:

我在dt_data 中加载了一个 Excel 工作表,我想将dt_data 的值与我的数据库进行比较,并将其显示在另一个数据网格视图dt_sample 上。在我的数据库中有过去 3 个月的记录,我想让它们全部显示在这里是我的代码如下:

试试

            For i As Integer = 0 To dt_data.RowCount - 3
                将meter_number 调暗为字符串
                meter_number = dt_data.Rows(i).Cells(3).Value
                Dim query As String = "Select * from customer wheremeter_num = @meter_num"
                conn.Open()
                暗淡命令作为新的 SqlCommand(query, conn)
                command.Parameters.AddWithValue("@meter_num",meter_number)
                将 da 作为新的 SqlDataAdapter(命令)
                暗淡为新数据集


                如果 i = dt_data.RowCount - 3 那么
                    da.Fill(ds, "客户")
                    dt_sample.DataSource = ds.Tables(0)
                万一



                连接关闭()

            下一个
        捕获 ex As SqlException
            MsgBox(例如消息,MsgBoxStyle.Critical,“SQL 错误”)
        抓住前任作为例外
            MsgBox(例如Message,MsgBoxStyle.Critical,“一般错误”)
            '结束尝试
            '抓住前任例外
            'MessageBox.Show(String.Format("Error: {0}", ex.Message), "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error)
        结束尝试

https://i.imgur.com/23WVp8z.png

【问题讨论】:

  • 请将您的结果作为格式化文本包含在问题中,而不是作为外部图像。
  • “我想比较值”。你想如何比较它们?我们不应该去猜测这些东西。
  • @jmcilhinney 我想通过单击一个按钮来比较它们,我有一个用于从 excel 加载到名为 dt_data 的 datagridview 的按钮,当我单击另一个按钮时,它应该比较 dt_data 中的特定列到我的 sql server 数据库
  • 比较他们如何?为了平等?相对价值?为了别的?那么结果怎么办?提供对问题的完整和清晰的解释。
  • 了解过去 3 个月的消费情况并得出平均值

标签: sql-server vb.net


【解决方案1】:
使用命令作为新的 SqlCommand()
                command.Connection = conn

                将参数名称调暗为新列表(字符串)(dt_data.RowCount - 2)
                For i As Integer = 0 To dt_data.RowCount - 3
                    Dim parameterName As String = "@meter_num_" & i
                    暗淡meter_number As String = dt_data.Rows(i).Cells(3).Value
                    command.Parameters.AddWithValue(parameterName,meter_number)
                    参数名称。添加(参数名称)
                下一个

                command.CommandText = String.Format("SELECT * FROM customer WHERE cycle = @cycle and meter_num IN ({0})", String.Join(",", parameterNames), ("ORDER BY Client_Name ASC"))
                command.Parameters.AddWithValue("@cycle", cycle2last)

                将 da 作为新的 SqlDataAdapter(命令)
                暗淡为新数据集
                da.Fill(ds, "客户")
                Compare_Reading.dt_last2month.DataSource = ds.Tables(0)
            结束使用

这就是我找到的解决方案,它成功地解决了我的问题

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    相关资源
    最近更新 更多