【问题标题】:Connecting console application to access database problems连接控制台应用程序以访问数据库问题
【发布时间】:2010-10-21 04:06:33
【问题描述】:

我正在尝试将控制台应用程序连接到访问数据库。

这是我正在使用的查询:

"选择 [类型]、[姓名]、[电话号码]、[开始时间]、[结束时间]、[IM 会话文件]、[备注] FROM [通话记录] WHERE [开始时间] >= ? "

问题是,由于某种原因,当我从 access 数据库中获取数据并将其放入 sql server 数据库中时,日期被弄乱了,因为它们不是按年份顺序排列的。

所以我决定添加一个 order by 子句:

SELECT [Type], [Name], [Phone Number], [Start Time], [End Time], [IM Session File], [Notes] FROM [Call History] ​​WHERE [Start Time] >= ? ORDER BY [通话记录]。[开始日期]

command.Parameters.Add("@date", OleDbType.Date); command.Parameters["@date"].Value = calllogClient.getLastEntryInserted(ssid);

不断收到此异常: System.Data.OleDb.OleDbException: 没有为一个或多个必需参数指定值。

我不知道如何进行这项工作。任何建议都会有所帮助。

谢谢

【问题讨论】:

  • calllogClient.getLastEntryInserted(ssid) 是否有可能返回 null?在那种情况下 calllogClient.getLastEntryInserted(ssid) ?? DBNull.Value 应该摆脱该异常。

标签: c# database ms-access console


【解决方案1】:

设置参数时,去掉@

command.Parameters["date"].Value = calllogClient.getLastEntryInserted(ssid);

【讨论】:

    【解决方案2】:

    我相信你的 select 语句应该是这样的:

    SELECT [Type], [Name], [Phone Number], [Start Time], [End Time], [IM Session File], [Notes] FROM [Call History] ​​WHERE [Start Time] >= @date ORDER BY [通话记录]。[开始日期]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 2016-12-29
      相关资源
      最近更新 更多