-4

タイトルが示すように、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 + "')"
4

3 に答える 3

1

エラーメッセージを提供していないため、ここでは推測していますが、列名にいくつかのタイプミスがあるようです。

"INSERT INTO Invoice(Date,S_OF,Consignee_name,Vechile_type,Make,...
                                              ^^^^^^^

ということVehicleですか?

Accesories_options

それは綴られるべきAccessoriesです。

Fright_Price

あなたは本当に人々を怖がらせるように請求しますか?私はあなたがFreight_Priceここを意味したと確信しています。

于 2012-05-29T20:44:39.363 に答える
0

String.Format("INSERT INTO Invoice Values {0}{1}{2}", value0, value1, value2 ) を使用すると、value0 が {0} に置き換えられ、value1 が {1} に置き換えられます。これにより、エラーをよりよく追跡できます。

さらに、SQL インジェクションを回避するためにストア プロシージャとパラメータを使用するようにしてください。時々それに費やす価値があります。

于 2012-05-29T20:51:46.757 に答える
0

誰かがデータベースにハッキングする可能性がある方法を次に示します (SQL インジェクション)。教育目的で提供されていることに注意してください。実行しようとしないでください!

誰かがあなたの合計テキストボックスにこれを入力すると、あなたのデータが削除される可能性があります:

'); delete from invoice; print ('hi

皮肉なことに、数年前、自分の車の部品を注文した Web サイト (Mopar 部品販売業者) でエラー メッセージが表示されました。「...WHERE句のエラー...」のようなエラーが発生しました。そのため、SQL インジェクション攻撃に対してオープンでした。私は彼らにメールを送りましたが、二度と注文しませんでした。あなたがここで彼らを代表していないことを願っています:)

于 2012-05-29T22:31:54.883 に答える