我的insert into语句正在创建一个新行。我认为这是因为if语句。
以下是我的代码示例:
Dim blanco = "Ja"
Dim blanco1 = "Nee"
With cmd
.CommandText = "INSERT INTO Workflow ([DossierPad]) VALUES ('" + Mid(stukjes(0), 1, 58) + "')"
.ExecuteNonQuery()
.CommandText = "INSERT INTO Data ([DossierPad], [Tif], [Grootte]) VALUES ('" + Mid(stukjes(0), 1, 58) + "','" + Mid(stukjes(0), 59, 71) + "','" + stukjes(2) + "')"
.ExecuteNonQuery()
If stukjes(2) < 20000 Then
.CommandText = "INSERT INTO Data ([Blanco]) VALUES ('" + blanco + "')"
.ExecuteNonQuery()
Else
.CommandText = "INSERT INTO Data ([Blanco]) VALUES ('" + blanco1 + "')"
.ExecuteNonQuery()
End If
End With
插入数据[Blanco]
,这在if语句中会在我的数据库中创建一个新行。
这是每次我尝试插入内容时会发生什么的图片:
如您所见,数据库会创建一个新行,但必须位于同一行内。
答案 0 :(得分:1)
执行INSERT
语句以在Workflow和Data表中创建新行后,您在If-Else语句中再次使用INSERT。从逻辑上讲,这将再次创建一个新行。
要更新现有行,您需要使用UPDATE
关键字。以下是更新查询的语法:
UPDATE table
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions];
这也让我想知道你为什么不在第一个INSERT查询中插入值。
答案 1 :(得分:1)
这很正常。我认为你没有读过很多关于SQL Syntax的内容。
插入用于向数据库添加新行。
更新用于更改数据。
在你的代码中,你首先要做:
"INSERT INTO Data ([DossierPad], [Tif], [Grootte]) VALUES ('" + Mid(stukjes(0), 1, 58) + "','" + Mid(stukjes(0), 59, 71) + "','" + stukjes(2) + "')"
然后你这样做:
"INSERT INTO Data ([Blanco]) VALUES ('" + blanco + "')"
.ExecuteNonQuery()
因此你有两个插页。
如果您只想更改所需的空白更新声明:
If stukjes(2) < 20000 Then
.CommandText = "UPDATE Data SET Blanco = '" & blanco & "' WHERE DossierPad = '" & Mid(stukjes(0), 1, 58) & "'"
.ExecuteNonQuery()
Else
.CommandText = "UPDATE Data SET Blanco = '" & blanco1 & "' WHERE DossierPad = '" & Mid(stukjes(0), 1, 58) & "'"
.ExecuteNonQuery()
End If
注意:强>