2017-02-07 9 views
0

MS Accessテーブルの内容をすべて削除したいのですが、SQLを設定する方法がわかりません。MS Accessデータベースのデータベース行を削除するためのVB.NET/SQL

これまでのところ、私はこのオンラインを見つけた:

Dim SqlQuery As String = "DELETE * FROM QuestionResults WHERE Quizname = " & txtQuizName.Text & ";" 

私が原因私の以前のコードにリンクアップデータベースへの接続を持って、私はそれがの内容を削除するようにこのコードを編集する方法だけでわかりませんよテーブル(私はそれがすべてのレコードではなく、テーブル自体を削除する)

Public provider As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" 
Public dataFile As String = "U:\My Documents\Visual Studio 2013\Projects\COMP4 Project\COMP4 Project\bin\Debug\QuizDatabase.accdb" 

Public connString As String 
Public myConnection As OleDbConnection = New OleDbConnection 
Public dr As OleDbDataReader 

connString = provider & dataFile 
myConnection.ConnectionString = connString 
myConnection.Open() 
+1

あなたは '' *を必要としません。それ以外の場合はSQLインジェクションに開放されたパラメータを使用します。 – Bugs

+0

これらのDBObjectはグローバルオブジェクトではありません。可能な限り小さな範囲で作成、使用、処分されることを意図しています(ただし例外はありません) – Plutonix

答えて

1

単にDELETE FROM QuestionResultsWHERE句なしでは、すべての行を削除します。

代替コマンドTRUNCATE TABLE QuestionResultsは高速ですが、Access/JETがTRUNCATEステートメントをサポートしているかどうかはわかりません。

文字列連結を使用してSQLを生成しないでください。誰かがテキストボックスに"Baba O'Reilly"を入れると、あなたのプログラムは壊れます。代わりに、パラメータを使用します。

0

ダイ氏によるとまた、あなたはOleDbDataReaderOleDbCommandを使う必要はありません。

は、データソースに対して実行するSQL文またはストアドプロシージャを表します。

使用例:

Dim command As New OleDbCommand(queryString, connection) 
command.ExecuteNonQuery() 
関連する問題