ACCESS的数据操作问题!!!急等谢谢帮忙

nesle 2005-01-28 01:53:22
ACCESS数据库已经连接成功
//我自己定义的函数,用来判断入库的东西在物品总表里是否已经存在
Function DataCheck(ByVal inputId As String, ByVal inputName As String, ByVal inputClass As String, ByVal inputSize As String) As Boolean

Dim aCon As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\ku.mdb")
Dim aCom As New OleDbCommand

aCom.CommandText = "Select count(*) From ku Where id='" & inputId & "' AND name = '" & inputName & "' AND class = '" & inputClass & "' AND size = '" & inputSize & "'"
aCom.Connection = aCon
aCom.ExecuteScalar()

'如果返回0表示此物品bu存在
If aCom.ExecuteScalar = 0 Then
Return True
Else
Return False
End If
End Function
//不存在就往总表插入,存在就更新数目和总价

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


If aCon.State = ConnectionState.Closed Then aCon.Open()
'定?一个字符串?量
Dim rukuSQL As String
Dim rukudate1 As String
Dim kuInsertSQL As String
Dim kuUpdateSQL As String
Dim sl As Integer
Dim zj As Double
zj = CDbl(TextBox7.Text)
sl = CInt(TextBox5.Text)
rukudate1 = TextBox8.Text
rukudate1 &= "/"
rukudate1 &= ComboBox1.Text
rukudate1 &= "/"
rukudate1 &= ComboBox2.Text
'?于字符型字段要加?引号
rukuSQL = "Insert Into ruku([id],[name],[class],[size],[num],[price],[amount],[rukudate]) values ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "','" & rukudate1 & "')"


kuInsertSQL = "Insert Into ku([id],[name],[class],[size],[num],[price],[amount],[rukudate]) values ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "','" & rukudate1 & "')"


kuUpdateSQL = "Update ku set num = num + sl,amount = amount + zj where ku.id = '" & TextBox1.Text & "' AND ku.name = '" & TextBox2.Text & "' AND ku.class = '" & TextBox3.Text & "' AND ku.size = '" & TextBox4.Text & "'"


If DataCheck(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text) = True Then
aCom.CommandText = kuInsertSQL
aCom.Connection = aCon
aCom.ExecuteNonQuery()
Else
aCom.CommandText = kuUpdateSQL
aCom.Connection = aCon
aCom.ExecuteNonQuery()
End If


aCom.CommandText = rukuSQL
aCom.Connection = aCon
aCom.ExecuteNonQuery()
aCon.Close()
End Sub
程序运行以后aCom.ExecuteScalar()这句话报错,不知道是不是SQL语句的错误造成的,我觉的函数的传递没问题,希望大家帮我看下什么原因???????????谢谢
...全文
85 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nesle 2005-01-28
  • 打赏
  • 举报
回复
解决了 class >> [class]
问题,还是太粗心了
landlordh 2005-01-28
  • 打赏
  • 举报
回复
经验:

基本上先在查询运行成功才插入到程序中运行

大部分的时候是因为语句有问题而导致出错


---------------------------------------
你可以先将返回的ExecuteScalar()付给一个变量
然后判断变量的值,class不算是保留字,
如果保留字,设计的时候会自动修改,你可以看到

你字段的类型,我不知,所以不好说,你可以自已在查询先调试下
老汉 2005-01-28
  • 打赏
  • 举报
回复
Access的保留字在SQL语句中必须要加[]括起来。

我们在使用ACCESS时,对所有的字段都采用[]括号,不要怕麻烦。
3tzjq 2005-01-28
  • 打赏
  • 举报
回复
1, aCom.ExecuteScalar()可以取消,因为下一行又 Return (aCom.ExecuteScalar = 0 )

class 好像是Access的保留字!应该 class >> [class]
nesle 2005-01-28
  • 打赏
  • 举报
回复
TO: LoveCherry(最讨厌你们这些要代码的了,一点技术含量都没有
我的SQL语句自己已经看了好多遍了,我自己怎么看也是对的,看不出
nesle 2005-01-28
  • 打赏
  • 举报
回复
我的ID,name,class,size是文本型的,num,price,amount是数值型的,表里最前面还有一个no是自动编号的
LoveCherry 2005-01-28
  • 打赏
  • 举报
回复
检查SQL语句
seesea125 2005-01-28
  • 打赏
  • 举报
回复
id='" & inputId & "' 如果是整形,就不用''
suro 2005-01-28
  • 打赏
  • 举报
回复
up

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧