c# - 从 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 - GCC 没有警告,虽然它应该
- mysql - 如何索引列中具有重复值的行?
- java - 流程图中的扫描仪| 爪哇
- angular - 将搜索过滤器添加到 Angular-6-datatable
- mysql - 如何仅从没有架构的选定表中转储数据
- ios - 为什么 tableview 数据源不会从 Realm Collection 观察者改变?
- javascript - Chrome JS 错误:混合内容:对于机器人
- apache-spark - Spark-提交 CoarseGrainedExecutorBackend 错误
- javascript - 如何使用 DataTables 和 Excel 解决 parseXML 问题?
- javascript - Karma - Jasmine 断开连接超时