【问题标题】:missing operator in query sum expression vb net查询和表达式 vb net 中缺少运算符
【发布时间】:2016-12-20 07:02:00
【问题描述】:
Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select sum[Shark Individual Weight] from FishCaught'", myConnection)
Dim ds As DataTable = New DataTable()
da.Fill(ds)
DataGridView1.DataSource = ds

myConnection.Close()

你好。我正在使用 vb.net 连接到 ms 访问。我不断收到错误“查询表达式中缺少运算符”。我想知道我的sql语句有什么问题。

    Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select Sum([Shark Individual Weight]) From FishCaught Where ([OperationID]) = '" & TextBoxOpID4.Text & "'", myConnection)
    Dim ds As DataTable = New DataTable()
    da.Fill(ds)
    DataGridView2.DataSource = ds

我认为我的 SQL 语法是错误的。实际应该怎么写?我收到此错误“条件表达式中的数据类型不匹配”。如果我只是写' Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select Sum([Shark Individual Weight]) From FishCaught',总和将被显示。所以我认为 WHERE 子句中有错误。任何帮助将不胜感激,谢谢.

【问题讨论】:

  • sum[Shark Individual Weight] 看起来错误应该是 sum(fieldname) 但在您的代码中 Shark Individual Weight 不是字段
  • 但是在ms访问中,鲨鱼个体体重是一个字段

标签: vb.net ms-access-2013


【解决方案1】:

Sum 是一个函数,而您有一个令人不安的单引号,因此:

"Select Sum([Shark Individual Weight]) From FishCaught"

【讨论】:

  • 我收到此错误“没有为一个或多个必需参数提供值。”
  • 这表示字段名称缺失或拼写错误。
  • 感谢我的程序有效! DataGridView1.DataSource 应该是 DataGridView2.DataSource
【解决方案2】:

这是你的代码

Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select sum[Shark Individual Weight] from FishCaught'", myConnection)
Dim ds As DataTable = New DataTable()
da.Fill(ds)
DataGridView1.DataSource = ds

myConnection.Close()

应该是代码一定是这样的

Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select sum(The_Name_Of_The_Field) from FishCaught'", myConnection)
Dim ds As DataTable = New DataTable()
da.Fill(ds)
DataGridView1.DataSource = ds

myConnection.Close()

是这样吗,试试这个FINAL

 Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select sum(Shark__Individual_Weight) as FishWeight from FishCaught'", myConnection)
    Dim ds As DataTable = New DataTable()
    da.Fill(ds)
    DataGridView1.DataSource = ds

    myConnection.Close()

尝试将Shark Individual Weight 更改为Shark_Individual_Weight 会起作用

【讨论】:

  • 感谢您的回复。但代码仍然产生同样的错误
  • OleDb 异常未处理
  • System.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的未处理异常附加信息:查询表达式“sum[Shark_Individual_Weight]”中的语法错误(缺少运算符)。跨度>
  • BRB 我们会解决这个问题
  • 我现在知道你的错误,这是因为我将编辑我的答案的字段,请稍候。
【解决方案3】:

"Select Sum([field name]) From FishCaught" 应该可以工作。您是否检查过数据库中的字段名称,它不应包含任何空格。为了使字段名称更具可读性,您可以将任何空格替换为“_”。

【讨论】:

  • 我已经得到了正确的代码,谢谢。但是,当我添加 where 子句时,代码存在一些问题。如果可能的话,你能帮帮我吗?
猜你喜欢
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 2018-09-02
  • 2018-01-29
  • 2012-11-14
相关资源
最近更新 更多