当前位置: 首页 > 知识库问答 >
问题:

C#SqlDataReader.Read()导致转换失败错误

汲灿
2023-03-14

对数据库的查询工作正常,并返回行。但是在某个时候,大约在运行程序2分钟后,程序崩溃,出现以下错误。

未处理的异常:System.data.SqlClient.SqlClient.SqlInternalConnection.OnError(SqlCeption异常,Boolean breakConnection,Action1wrapCloseInAction)处的System.data.SqlClient.TdSparser.ThrowExceptionandWarning(TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)处的System.data.SqlClient.TdSparser.TryRun(RunBehavior Run)M.main(string[]args)在C:\users\ari.downey\documents\Visual Studio 2015\projects\trackchanges\trackchanges\program.cs:第31行按任意键继续。。。。

using (SqlCommand cmd = new SqlCommand(query, conn))
{
    conn.Open();
    SqlDataReader read = cmd.ExecuteReader();

    while (read.Read())
    {
        if (read[4].ToString().ToUpper() != columns[4].ToUpper())
        {
            for (int i = 0; i < read.FieldCount; i++)
                Console.Write(read[i] + " || " + columns[i] + " ");
            Console.WriteLine(" ");
        }
    }                       
    conn.Close();
}

我很抱歉代码是纯文本。我需要问一个问题,以获得更多的声誉,但我没有相关的问题,除了这个问。


共有2个答案

楚望
2023-03-14

这里的问题可能是正在进行的转换是不可能的。INT永远不能为空,它必须为0。您也不能将“null”的varchar/string值转换为int,因为它不表示整数值。

如您得到的异常所述。将varchar值“NULL”转换为数据类型int时转换失败。

尝试使用int32.tryparse。您应该能够捕获并处理空值。

章昆琦
2023-03-14

当数组数据从0开始时,你的计数会不会从1开始?

 类似资料:
  • 问题内容: 我尝试搜索与此相关的以前的文章,但是找不到适合我情况的文章。而且由于我是StackOverflow的新手,所以我无法发布图片,所以我将尝试对其进行描述。 我有两个数据集。一个是34行,占所有s的1列。其他13行,其中1列为s。 当我同时尝试这两个时,出现以下错误: 将varchar值转换为int数据类型时,转换失败。 我不明白为什么会收到此错误。我之前编辑过许多列和许多其他类型的列,但

  • 我正在按照http://spring.io/guides/gs/consource-web-service/#scratch中提供的分步说明学习如何使用Gradle和Spring-WS使用SOAP web服务。我已经创建了上面URL中指定的文件夹结构(即:c:/src/main/java/hello)并将build.gradle、weatherclient.java、weatherconfigur

  • 我的PC中安装了visual studio C++6.0和visual studio C++2010 express。我的朋友可以用visual Studio2010 Express在他的PC上编译相同的项目,但我的PC出现了抛出和错误 链接:致命错误LNK1123:转换到COFF时失败 我不想卸载visual studio C++6.0。我得把它留着做其他项目。我可以卸载/安装Visual st

  • 我不知道如何制作一个可复制的例子,但我很想知道是否还有其他人遇到过这个问题。我在运行Ubuntu的EC2实例上有一个R Markdown文件,该文件通过shinny服务器托管。几天来一切正常,现在当我尝试在浏览器中查看文档时,突然出现以下错误: 我没有转换为pdf,也没有推送任何更改,几个小时前它还在工作。我在网上找不到关于这个错误代码的任何信息,所以我不知道如何调试这个问题。以前有人发生过这种情

  • 问题内容: 我添加了一个构建步骤来执行Python脚本。 在此脚本中,使用lint.Run(.. args)调用pylint来检查代码。 该脚本可以工作,但是最后,构建失败,并显示唯一的错误消息: 有人知道为什么会这样吗? 问题答案: 看来您的pylint执行退出状态为非零(缺少脚本,错误的选项…),也许您在退出脚本时引发了异常或

  • 问题内容: 在清理这个答案时,我对MySQL和s和存储过程有了一些了解,但感到震惊的是,尽管and 触发器可以修改数据,但它们似乎不会导致插入/更新失败(即验证)。在这种特殊情况下,我可以通过处理数据以导致主键重复的方式来使其工作,这在这种特殊情况下是有道理的,但在一般意义上不一定有意义。 这种功能在MySQL中可行吗?在其他RDBMS中(可悲的是,我的经验仅限于MySQL)?也许是样式语法? 问

  • 问题是所有的字体文件都显示出如下所示的各种错误