从 MS Access 中删除所有记录
Posted
技术标签:
【中文标题】从 MS Access 中删除所有记录【英文标题】:Delete all records from MS Access 【发布时间】:2014-03-08 06:27:51 【问题描述】:我正在使用 ms 访问,其中 1 列名称为 TIME 作为日期/时间类型,格式为 dd/mm/yyy hh:nn:ss
例如
时间 2014 年 6 月 3 日 23:43:24
现在使用 vb.net 我已经从网上获取了这段代码来将数据插入到表 Table1 中
Dim TrDate As DateTime = DateTime.Now
Dim CurrentDate = Format(TrDate, "yyyy/MM/dd hh:mm:ss tt")
Private Sub Timer7_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer7.Tick
dbconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & FilePath)
Try
dbconn.Open()
strSQL = "INSERT INTO Table1 ([TIME]) VALUES (?)"
objcmd = New OleDbCommand(strSQL, dbconn)
objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@TIME", CurrentDate))
objcmd.ExecuteNonQuery()
dbconn.Close()
Catch myException As System.Exception
Windows.Forms.MessageBox.Show(myException.Message)
End Try
End Sub
// 这个查询很好用
Private Sub Timer8_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer8.Tick
dbconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & FilePath)
Try
Dim TrDate1 As Date = Date.Now
Dim CurrentDate1 = Format(TrDate1, "yyyy/MM/dd hh:mm:ss tt")
dbconn.Open()
strSQL = "DELETE FROM Table1 WHERE TIME < CurrentDate1"
objcmd = New OleDbCommand(strSQL, dbconn)
objcmd.ExecuteNonQuery()
dbconn.Close()
Catch myException As System.Exception
Windows.Forms.MessageBox.Show(myException.Message)
End Try
End Sub
// 删除查询不执行给出错误“No value given for on eor //more parameters”
我想删除今天前 1 天的所有记录。我希望每天只运行一次TIMER8
。
【问题讨论】:
【参考方案1】:你在这行有错误
strSQL = "DELETE FROM Table1 WHERE TIME < CurrentDate1"
您必须将 CurrentDate1 变量本身连接到查询,如下所示:
strSQL = "DELETE FROM Table1 WHERE TIME < " & CurrentDate1
但推荐的构造 SQL 语句的方法是使用 参数化 SQL 语句,就像您在代码的第一个 sn-p 中所做的那样,而不是字符串连接。
strSQL = "DELETE FROM Table1 WHERE TIME < ?"
objcmd = New OleDbCommand(strSQL, dbconn)
objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@TIME", CurrentDate1))
objcmd.ExecuteNonQuery()
【讨论】:
您将需要哈希分隔符 (#)以上是关于从 MS Access 中删除所有记录的主要内容,如果未能解决你的问题,请参考以下文章