C# 错误号:134,状态:1,类别:15

C# 错误号:134,状态:1,类别:15,c#,sql,C#,Sql,我正在控制台应用程序中生成数据,并将其插入数据库 我目前可以生成一行,并将其插入数据库中,没有任何问题 编辑:我添加了当前试图在while循环中使用的代码。 编辑2:使用参数解决问题。如下面的注释所述清除 非常感谢您的帮助。基于上面的代码,我假设您的命令没有被释放,因为您正在手动释放连接。因此,垃圾收集器没有清理该命令。因此,参数变量被声明。如果按照以下方式修改命令: public void Insert() { using(var connection = new SqlConnec

我正在控制台应用程序中生成数据,并将其插入数据库

我目前可以生成一行,并将其插入数据库中,没有任何问题

编辑:我添加了当前试图在while循环中使用的代码。 编辑2:使用参数解决问题。如下面的注释所述清除


非常感谢您的帮助。

基于上面的代码,我假设您的命令没有被释放,因为您正在手动释放连接。因此,垃圾收集器没有清理该命令。因此,参数变量被声明。如果按照以下方式修改命令:

public void Insert()
{
     using(var connection = new SqlConnection(dbConnection))
     using(var command = new SqlCommand(query, connection))
     {
          connection.Open();
          command.Parameters.AddWithValue("", "");
          command.Params.Add("", SqlDbType.Int, "");
          command.ExecuteNonQuery();
     }
}
然后你们会创建你们想要的循环,把你们想要的任何参数传递给这个方法,为了简洁起见,我把它留空了。应该没有问题


您也可以简单地执行
参数。Clear()
然后读取它们,以确保命令参数尚未填充。

“这意味着已经声明了一个变量”,请发布您正在执行的操作,以便我们了解您是如何遇到此错误的。如果删除while循环,我已经添加了试图循环的代码,它工作正常,但只在数据库中插入了一行,这不是我要找的。为什么要投反对票?我没有投反对票,但是
AddWithValue
有,你不应该告诉初学者使用它。谢谢你的回答,我已经添加了我正试图运行的代码,它似乎与您的相同。@Greg感谢您的回答,我只是想非常感谢您,我添加了'ed CMD.Parameters.Clear();现在一切都像一个符咒@DourHighArch我通常不使用
AddWithValue
,基本上我更喜欢显式地声明数据库类型。然而,我确实觉得在大多数基本实现中,这就足够了。最终,这将取决于开发人员和代码。但这将是他们在成长过程中遇到的一个教训。我添加了一个手动参数add,这样他们就可以同时看到这两个参数并选择自己喜欢的方式。