【问题标题】:Why am I getting "specified cast not valid" here?为什么我在这里得到“指定的演员表无效”?
【发布时间】:2016-08-09 21:49:02
【问题描述】:

我有一个 MyColumn 类型的 INT 列,我正在使用该列检索一些行

string selectQuery = $@" SELECT [MyColumn] FROM [dbo].[MyTable]
                         WHERE [Id] IN ('{testid_1}','{testid_2}','{testid_3}')
                         ORDER BY [MyColumn]";

var vals = mydb.ExecuteQuery<int?>(selectQuery).ToList();

其中db 的类型为DataContext

知道为什么这会给我一个无效的强制转换异常吗?

【问题讨论】:

  • 啊啊啊!我发现了乔恩·斯基特!
  • 您说您的字段不为空,但您正在将其转换为可为空的 int。为什么?
  • 静止。您的字段是否可以为空? (我看到你从文本中删除了 not null)
  • @AshkanSirous 可以为空
  • {testid_1}...{testid_3} 的类型为 varchar

标签: c# sql asp.net sql-server asp.net-mvc


【解决方案1】:

这是因为它试图将 VARCHAR 类型转换为 INT 的以下行

WHERE [Id] IN ('{testid_1}','{testid_2}','{testid_3}')

【讨论】:

    猜你喜欢
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    相关资源
    最近更新 更多