首页 > 解决方案 > 从 varchar 值转换为 int 值时出错

问题描述

我遇到的问题是“将 varchar 值 '@param4' 转换为数据类型 int 时转换失败。”

我是数据库新手,不知道如何嵌套 SQL 注入(我希望我正确使用了这个术语)。

我看到您可以使用 CONVERT 转换为 int,但我不知道如何嵌套 SQL“代码”。我也尝试在 SQL 服务器管理工​​具中手动进行。我没有使用参数并且它有效,所以我猜测问题出在参数的某个地方(正如异常所暗示的那样,但我不知道具体在哪里)。

SqlCommand command = new SqlCommand("INSERT INTO Books (Name, Author, Category, NrOfPages, Status) " +
                        "VALUES ('@param1', '@param2', '@param3', '@param4', '@param5')", conn);
                    command.Parameters.AddWithValue("param1", "test");
                    command.Parameters.AddWithValue("param2", "test");
                    command.Parameters.AddWithValue("param3", "test");
                    command.Parameters.AddWithValue("param4", 0);
                    command.Parameters.AddWithValue("param5", "test");
                    command.ExecuteNonQuery();

Name、Author、Category 和 Status 都是 varchar(50),NrOfPages 是 int。

标签: c#sqlcommand

解决方案


推荐阅读