当前位置: 首页 > 面试题库 >

检索scope_identity时,特定类型转换无效

龚永新
2023-03-14
问题内容

我收到异常消息:“特定的强制转换无效”,这是代码

con.Open();
string insertQuery = @"Insert into Tender (Name, Name1, Name2) values ('Val1','Val2','Val3');Select Scope_Identity();";

SqlCommand cmd = new SqlCommand(insertQuery, con);
cmd.ExecuteNonQuery();
tenderId = (int)cmd.ExecuteScalar();

问题答案:

为了完整性,代码示例存在三个问题。

1)您通过调用ExecuteNonQuery和两次执行查询ExecuteScalar。结果,每次该函数运行时,您将在表中插入两条记录。您的SQL虽然是两个不同的语句,但将一起运行,因此您只需调用即可ExecuteScalar

2)Scope_Identity() 返回小数。您可以使用Convert.ToInt32查询的结果,也可以将返回值转换为十进制,然后转换为int。

3)确保将连接和命令对象包装在using语句中,以便正确处理它们。

using (SqlConnection connection = new SqlConnection(connectionString))
{
    using (SqlCommand command = new SqlCommand(sql, connection))
    {
        connection.Open();
        int tenderId = (int)(decimal)command.ExecuteScalar();
    }
}


 类似资料:
  • 我正在尝试有一个通量通用转换器使用通用类型在Java 8。我把我的代码建立在这个答案的基础上。其思想基本上是实现这个特定的转换器->: 类型转换器->转换为我想要的任何类型。因此,我正在使用构造函数创建一个类型为的类,并返回一个方法。我想在调用上创建类似这样的多个条目:,但类类型不同。但它甚至对整数也不起作用。 当我使用此单元测试进行测试时,我得到错误:。

  • 我有一个源类,它将字符串属性定义为CharSequence(不幸的是)。 所以如下: 给我: 无法将属性“java.lang.CharSequence charSeq”映射到“java.lang.String str”。考虑声明/实现一个映射方法:“java.lang.String map(java.lang.CharSequence value)” 我如何实现这个映射器方法,并使它对我的所有映射

  • 问题内容: 也许这很简单,但实际上我对Java 8功能不熟悉,不知道如何实现。我有一条包含以下文本的简单行: “密钥,名称” 并且我想将该行转换为String数组,并用逗号(,)分隔每个值,但是,我还想在返回最后一个数组之前修剪每个字段,所以我做了以下工作: 但是,这将返回Object []数组而不是String []数组。经过进一步检查,我可以确认内容实际上是String实例,但是数组本身是Ob

  • 也许这很简单,但实际上我对Java8特性一无所知,不知道如何实现这一点。我有一个简单的行,包含以下文本: “密钥,名称”

  • 由来 Hutool中类型转换最早只是一个工具类,叫做“Convert”,对于每一种类型转换都是用一个静态方法表示,但是这种方式有一个潜在问题,那就是扩展性不足,这导致Hutool只能满足部分类型转换的需求。 解决 为了解决这些问题,我对Hutool中这个类做了扩展。思想如下: Converter 类型转换接口,通过实现这个接口,重写convert方法,以实现不同类型的对象转换 ConverterR

  • 问题内容: 有没有办法检索为Foo的实现而给出的T? 例如, 将返回绿色。 问题答案: 与其他答案相反,您可以获得通用参数的类型。例如,将其添加到通用类内部的方法中,将获得该类的第一个通用参数(在您的情况下): 我在我编写的通用Hibernate DAO中使用了此技术,因此我可以获得持久化的实际类,因为Hibernate需要它。有用!