2016-04-29 10 views
0

IDフィールドを使用してVBScriptを使用してデータベースMSSQL 2005 Expressレコードを更新するにはどうすればよいですか?IDフィールドを使用してデータベースMSSQL 2005 Expressレコードを更新する方法

私は、VBScriptでスクリプトを持っている:

myCommand.CommandText = "UPDATE Klienci_NC SET Klienci_NC.Klient = '" & & Klient_niceform' 'WHERE Klienci_NC.ID =' "& ID_zmienna &" '" 

をしかし、私は、レコードID列を表すボックスID_zmienna与えられた番号を入力する必要がMSSQLデータベースKlienci_NCKlienci_NC.Klientでレコードを更新します。

何をするかは自動的にボックスにダウンロードされますか?

すべての私VBSciptスクリプトは次のようになります。

Dim conn, SQL, rs 
Const DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=DJ-PC;Initial Catalog=Baza_NC;user id ='user_baza_nc';password='password'" 
Set myConn = CreateObject("ADODB.Connection") 
Set myCommand = CreateObject("ADODB.Command") 
myConn.Open DB_CONNECT_STRING 
Set myCommand.ActiveConnection = myConn 
rem myCommand.CommandText = "UPDATE Klienci_NC SET Klienci_NC.Klient = 'Hello'" 
rem myCommand.CommandText = "UPDATE Klienci_NC SET Klienci_NC.Klient = '" & Klient_niceform & "'" 

myCommand.CommandText = "UPDATE Klienci_NC SET Klienci_NC.Klient = '" & Klient_niceform & "' WHERE Klienci_NC.ID = '" & ID_zmienna & "'" 

myCommand.Execute 
myConn.Close 

選択したデータベース内のレコードではなく、すべてを更新するために何をしますか?この行で

+1

[少しのボビーテーブルに気をつけてください](https://xkcd.com/327/) –

+0

もしあなたの質問が自動的に変数 'ID_zmienna'を埋める方法であれば、私たちはあなたのデータベースについて何も知らないので答えられません構造(またはあなたのアプリケーション)。 –

答えて

0

連結正しくない
myCommand.CommandText = "UPDATE Klienci_NC SET Klienci_NC.Klient = '" & & Klient_niceform' 'WHERE Klienci_NC.ID =' "& ID_zmienna &" '" 

これはあなたの表に、コマンドの更新プログラムをすべての行を作り、文の終わりを離れてあなたのwhere句を失うています。

それはこのようにする必要があります。また

myCommand.CommandText = "UPDATE Klienci_NC SET Klienci_NC.Klient = '" & Klient_niceform & "' WHERE Klienci_NC.ID = '" & ID_zmienna & "'" 

、ゾハルのコメントは非常に関連性があります。変数をSQLに連結するこの方法は、SQLインジェクション攻撃に対してオープンです。 ParameterオブジェクトでADO.NET SQLCommandを使用することを検討してください。

+0

はい、開かれていますが、ユーザーとpwdは平文でファイルに格納されているため、心配する必要はありません。 –

+0

答えに感謝します。この全体のスクリプトでは、正しいエントリです。誰も私の問題を解決する方法を知っていますか? – darjab

+0

データベース内のすべてのレコードが更新されている場合、WHERE句が何とか失われている可能性があります。これは通常、連結のバグにつながります。 SQL Server Profilerを開いてスクリプトが生成しているSQLをキャプチャすることは、さらに分析する必要がある場合に最善の方法です。この動画はhttps://www.youtube.com/watch?v=mJ8Dyv4Uk6Eでご覧ください。プロファイラは、これらの種類の問題をデバッグするためのコアツールです。 – EvalKeneval

関連する問題