【问题标题】:Execution of ADODB statements stop suddenlyADODB 语句的执行突然停止
【发布时间】:2018-11-24 05:57:45
【问题描述】:

早上好, 我已经完成了一个应用程序,它工作正常,直到我向其中一个表添加一个新字段。 我需要将文件保存在数据库中,因为他们不希望有一个位置来保存文件,而且他们需要创建一个备份系统来保存这些文件一旦上传。

我正在将文件保存在数据库中, 在 SQL 上,我的数据类型为 VarBinary

ADODB 中检索信息的功能很好,但是当我添加行以获取文件内容时,我正在调试并且每次应用程序到达该代码行时,执行就会停止。对我来说很奇怪,没有错误没有事件查看器错误,没有编译错误只是停止。

 if (sqlDataReader["filetable"] != null && sqlDataReader["filetable"].ToString().Length > 0)
                    {
                        item.FileTable = Encoding.ASCII.GetBytes(sqlDataReader["filetable"].ToString());
                    }

这是停止执行的代码行

当调试器在 if 中时,它只是停止调试应用程序。

对此我将不胜感激。 这快把我逼疯了。

谢谢大家。

【问题讨论】:

  • 您是否尝试过在该 1 行周围放置一个 try catch 并查看是否抛出了异常?
  • 如果您能提供minimal reproducible example,那就太好了。
  • 我已经尝试了try catch,没有任何异常,代码没有异常。
  • @Wheels73 是的,我有尝试!什么都没有。
  • 我不认为声明sqlDataReader["filetable"].ToString() 会做你想做的事。该语句将返回System.Byte[]

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


【解决方案1】:

不要忘记检查以确保该字段不是 DBNull。检查 null 与数据库中的 null 不同。

sqlDataReader["filetable"] != DBNull.value

https://msdn.microsoft.com/en-us/library/system.dbnull.value(v=vs.110).aspx

【讨论】:

  • 我之前检查过,什么也没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多