【问题标题】:Data Type Mismatch when evaluating Access Calculated Fields in Visual c# using Microsoft Access Database Engine使用 Microsoft Access 数据库引擎在 Visual c# 中评估 Access 计算字段时的数据类型不匹配
【发布时间】:2015-11-10 12:43:33
【问题描述】:

我在 Visual Studios c# windows 窗体项目中有一个 OleDbCommand,我试图在我的 Access 表 Stock 中选择每个项目的名称,其中该表中计算字段的值小于一个。 Access 中计算字段的结果类型设置为十进制,代码看起来应该可以工作,但无论出于何种原因它都不能。你能帮帮我吗?

这是我的代码:

        loginForm.connection.Open();
        stockLowString = "";
        var checkStockLowCommand = new OleDbCommand("SELECT stockName FROM Stock WHERE (stockLowCalculation < '" + Convert.ToDecimal(1) + "')",loginForm.connection);
        OleDbDataReader checkStockLowReader = checkStockLowCommand.ExecuteReader();
        while (checkStockLowReader.Read())
        {
            stockLowString = stockLowString + checkStockLowReader.GetString(0) + " ";
        }
        if (stockLowString != "")
        {
            MessageBox.Show("There are some Stock Items that are low, these are" + Environment.NewLine + stockLowString);
        }
        loginForm.connection.Close();

错误发生就行了

OleDbDataReader checkStockLowReader = checkStockLowCommand.ExecuteReader();

提前感谢您的帮助。

【问题讨论】:

    标签: c# visual-studio oledb


    【解决方案1】:

    问题解决了,或者至少避免了。我只是将计算放在命令中,而不是使用计算字段。 这个问题仍然有效,因为我没有解决它。

    【讨论】:

      【解决方案2】:

      打开数据库并检查字段“stockLowCalculation”的类型,它很可能不是小数。我建议您重新编写查询并使其参数化。这样可以避免大多数可能的数据类型不匹配错误。

      string conS ="..."; // connection string
      var param = 1;
      using (var connection = new OleDbConnection(conS))
      {
             string queryString = "SELECT stockName FROM Stock WHERE stockLowCalculation < @var"
             var cmd = new OleDbCommand(queryString, connection);
             cmd.Parameters.Add(new OleDbParameter("@var", param));
             connection.Open();
             OleDbDataAdapter adapt = new OleDbDataAdapter(cmd);                    
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-25
        • 2014-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多