Sql server 字符串连接生成的查询失败,关键字WHERE附近的语法不正确`

Sql server 字符串连接生成的查询失败,关键字WHERE附近的语法不正确`,sql-server,vb.net,sql-server-2008,Sql Server,Vb.net,Sql Server 2008,我想同时在两个表中插入值。第一个值是整数类型 例子 我输入了一个类似$5000的值,这是我转换此值后的第一个值 quotvalue=Val(((finalpayment.Text)/100)*2) 然后我想先在文本框中插入这两个值,然后是quotvalue 我正在使用SQL server 2008,在那里我有两个表 在这两个表中,我输入了项目进度中的值,并在我想在员工表列插入该值后,转换了最终付款 这是我在VB.NET中的示例代码 myconnection = New SqlConnecti

我想同时在两个表中插入值。第一个值是整数类型 例子

我输入了一个类似$5000的值,这是我转换此值后的第一个值
quotvalue=Val(((finalpayment.Text)/100)*2)

然后我想先在文本框中插入这两个值,然后是quotvalue

我正在使用SQL server 2008,在那里我有两个表

在这两个表中,我输入了项目进度中的值,并在我想在员工表列插入该值后,转换了最终付款

这是我在VB.NET中的示例代码

myconnection = New SqlConnection(strconnection)
        myconnection.Open()
        quotvalue = Val(((finalpayment.Text) / 100) * 2)
        myquery &= "insert into Project_Progress (Project_id,client_id, ex_id, final_payment, dateof_payment, stattus) values('" & txtprjectid.Text & "','" & clientid.Text & "','" & exid.Text & "','" & finalpayment.Text & "', '" & dateofquot.Text & "', '" & txtstatus.Text & "')"
        myquery &= "insert into Emplyee (insentive) values('" & quotvalue & "') WHERE  Project_Progress.ex_id = Emplyee.Emp_ID "
        mycommand = New SqlCommand(myquery, myconnection)
        mycommand.ExecuteNonQuery()
        myconnection.Close()
在执行代码之后,这个问题就出现了

请帮助并建议我应该做什么

您在同一个字符串/变量(myquery)中有两条语句(两个插入)

您应该先执行一个,然后执行另一个


除此之外,请看一下“参数化查询”,因为您的代码易于SQL注入

我不熟悉vb.net,但从SQL查询的外观来看,我认为它朝着奇怪的方向发展,因为“insert values(),where”语句不应该有效。您应该“insert into table 1(col1,col2,col3)value(val1,val2,val3)”或“插入表1(col1、col2、col3)从另一个表中选择col1、col2、col3“首先也是最重要的是,如果你不这样做,你就是在自找麻烦。但是,出现错误的原因是使用
INSERT时无法使用
WHERE
。。值…
-您第二次插入的目的是什么?字符串连接。鲍比桌子。不要。再多的引用也无法修复这样的代码。任何输入中的一个
都足以导致错误的查询。改用参数化查询。一旦你这样做了,你会发现这两个查询之间没有任何区别。此外,永远不要使用
Val
。首先使用适当的区域性将所有输入解析并验证为适当的类型,然后将其用于计算。不同的国家使用不同的十进制分隔符,大多数欧洲国家使用
而不是
。如果输入
1000
,您的代码会做什么?2017年12月13日的日期如何?或
2017年12月13日
?批量处理多个查询没有问题。只要他们分开