正如标题所说,我在尝试从ASP.NET页面对MS Access数据库执行以下插入查询时出现语法错误。
sqls = "INSERT INTO Invoice(Date, S_OF, Consignee_name, Vechile_type, Make, Model,
Chassis_no, Transmission, Fuel_Type, Mile_age, Colour,
Engine_type, Wheel_Drive, Accesories_options, FOB_Price,
Fright_Price, Insurance, inspection, Port_of_Loading,
Destination, Drive, Total)
VALUES('" + date1.Text + "','" + Sof.Text + "','" + consigneee.Text + "','" +
dvtype.Text + "','" + make.Text + "','" + Model.Text + "','" + chassisno.Text +
"','" + dtransmision.Text + "','" + dfueltype.Text + "','" + mileage.Text + "','"
+ dcolour.Text + "','" + enginetype.Text + "','" + dwheeldrive.Text + "','"
+ labelc.Text + "','" + FobPrice.Text + "','" + frieghtprice.Text + "','"
+ insurance.Text + "','" + inspection.Text + "','" + portofloading.Text
+ "','" + portdestination.Text + "','" + ddrive.Text + "','" + total.Text + "')"
答案 0 :(得分:1)
我只是在猜测,因为你没有提供错误信息,但你似乎在列名中有一些拼写错误。
"INSERT INTO Invoice(Date,S_OF,Consignee_name,Vechile_type,Make,...
^^^^^^^
您的意思是Vehicle
吗?
Accesories_options
它拼写为Accessories
。
Fright_Price
你真的让人害怕吗?我确定你的意思是Freight_Price
。
答案 1 :(得分:0)
你可以String.Format(“INSERT INTO Invoice Values {0} {1} {2}”,value0,value1,value2)所以value0将替换为{0},value1将替换为{1},所以上。这样你可以更好地追踪错误。
此外,尝试使用store-procedure和参数来避免sql注入。有时花在它上面是值得的。
答案 2 :(得分:0)
以下是有人可能会破解您的数据库(SQL注入)。请注意,它是出于教育目的!不要试图执行它!
如果有人在您的总计文本框中输入此内容,您的数据可能会被删除:
'); delete from invoice; print ('hi
具有讽刺意味的是,几年前,我在网站上收到了错误消息,我在那里订购了我的汽车零件(Mopar零件销售商)。我得到错误,如#34; ... WHERE子句中的错误..."。因此,它对SQL注入攻击是开放的。我给他们发了电子邮件但从未再次向他们订购过。我希望,你不是在这里代表他们:)