sql - 使用多行文本框进行用户输入,而不是单行 VB.net
问题描述
目前,我的应用程序使用两个单独的文本框正常工作,用户输入一个 sku 和一个订单号,然后单击一个按钮运行 SQL 查询。为了使这个应用程序更高效,我希望允许用户在多行文本框中输入订单列表,但我不确定如何设置变量以将列表传递给我的查询。
当前状态:
Private Sub btnCancelLines_Click(sender As Object, e As EventArgs) Handles btnCancelLines.Click
MdiParent = Toolbox
Try
Dim orderNum As String = CStr(txtOrder.Text)
Dim skuNum As String = CStr(txtSKU.Text)
SQL.AddParam("@order", txtOrder.Text)
SQL.AddParam("@SKU", txtSKU.Text)
SQL.ExecQuery("update sop10200
set qtycance = qtytoinv, qtytoinv = '0', ATYALLOC = '0', QTYREMAI = '0'
where ITEMNMBR = @sku
and SOPNUMBE = @order;")
If SQL.HasException(True) Then Exit Sub
dgvData.DataSource = SQL.DBDT
LoadGrid()
Catch ex As System.InvalidCastException
MessageBox.Show("Please use numbers",
"Error")
Console.WriteLine("An error occured")
Catch ex As Exception
MessageBox.Show("An unknown error occured",
"Error")
End Try
End Sub
我的多行文本框是 txtOrderList 显然我会将我的 SQL 查询更改为 IN 语句。
如果有人能指出我正确的方向,我将不胜感激。
解决方案
有很多方法可以完成这项任务。
- 您可以从您的选择中构建一个
XML
字符串,然后将其传递到一个存储过程中,然后创建一个您可以加入的表变量。 - 创建一个可以在调用中拆分的分隔字符串,该字符串将插入到表变量中。
例如:
Dim orderNums As String = String.Join(",", txtOrder.Lines)
SQL.AddParam("@order", orderNums)
'Execute your query...
在您的查询中...
SQL.ExecQuery("DECLARE @tbl TABLE(OrderNums BIGINT);
INSERT INTO @tbl(OrderNums)
SELECT x.value
FROM STRING_SPLIT(@order, ',') x;
UPDATE sop
SET qtycance = qtytoinv, qtytoinv = '0', ATYALLOC = '0', QTYREMAI = '0'
FROM @tbl t
INNER JOIN sop10200 sop
ON sop.SOPNUMBE = t.OrderNums
WHERE sop.ITEMNMBR = @sku;
")
希望这将使您走上正确的轨道...以上将更新sop10200
提供订单号的表格中的所有内容。
推荐阅读
- xaml - 在值为 Auto 的网格中,我看不到标签的内容
- python - 如何从def中取出数据
- asp.net-core - 为什么 Blazor @onclick 不能在可悬停的 html 元素内容中工作,但 @onmousedown 工作?
- javascript - 在 React js 中有条件地设置数据切换属性
- c# - 从 /tmp 到 /mnt 的 File.Move 或 File.Copy 无法在 Linux 上使用 .NET Core
- javascript - UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body around: Value "channel" is not snowflake
- python - python gtk 深色主题图标按钮
- node.js - 无法使用 Sequelize / NodeJS 作为缺少 sslmode 标记连接到 Heroku postgres DB
- r - 如何使用 R 在 Plotly 条形图上排列 x 轴
- vue.js - Vue 3 Storybook Scss 和 Tailwind 配置