Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何修复此处的“指定强制转换无效”错误?_C#_Asp.net_.net_Sql Server - Fatal编程技术网

C# 如何修复此处的“指定强制转换无效”错误?

C# 如何修复此处的“指定强制转换无效”错误?,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,我试图使用insert语句上的输出并使用DataContext.ExecuteQuery或任何更合适的DataContext方法来获取SMALLINT的id 尝试: string query = $@" DELETE FROM MyTable WHERE [Name] = '{name}' INSERT INTO MyTable ([Name], ...) OUTPUT INS

我试图使用insert语句上的输出并使用DataContext.ExecuteQuery或任何更合适的DataContext方法来获取SMALLINT的id

尝试:

            string query = $@"
                DELETE FROM MyTable WHERE [Name] = '{name}'
                INSERT INTO MyTable ([Name], ...)
                OUTPUT INSERTED.ID
                VALUES ('{name}', ...)";
            short id = (short)context.ExecuteQuery<int>(query).Single();
我尝试使用SCOPE\u IDENTITY,但发生了同样的事情。

删除

插入的输出.ID

);选择范围\标识

最后,在引号内

ExecuteQuery要求在结果集中返回一个不同于输出变量的值。InvalidCastException来自尝试将null的结果集转换为int。

删除

插入的输出.ID

);选择范围\标识

最后,在引号内

ExecuteQuery要求在结果集中返回一个不同于输出变量的值。InvalidCastException来自尝试将null的结果集转换为int。

尝试:

short id = context.ExecuteQuery<short>(query).Single();
当希望SQL Server返回Int32并获取Int16时,代码中会发生强制转换异常。

请尝试:

short id = context.ExecuteQuery<short>(query).Single();

当希望SQL Server返回Int32并获取Int16时,代码中会发生强制转换异常。

查询有效吗?因为您使用@,所以查询字符串以新行开头。您可以通过在同一行上启动字符串来删除它:string query=$@DELETE FROM MyTable,其中[Name]='{Name}'..@Quantic不应该是重要的。Single将在空列表上失败-请尝试FirstOrDefault,看看是否有帮助。@Hogan我希望它在空列表上失败,那么您就成功了!这个查询有效吗?因为您使用@,所以查询字符串以新行开头。您可以通过在同一行上启动字符串来删除它:string query=$@DELETE FROM MyTable,其中[Name]='{Name}'..@Quantic不应该是重要的。Single将在空列表上失败-请尝试FirstOrDefault,看看是否有帮助。@Hogan我希望它在空列表上失败,那么您就成功了!