重置所有SQL Server数据库值c#?

时间:2017-04-04 13:44:02

标签: c# sql-server wpf

我有一个包含两列的SQL Server表。

想要用新的重置所有值

我确实尝试过使用update命令,但是我得到了无法将字符串转换为int错误。

我想更新所有列

我将如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

如果您想将值设置为0,则必须将值设置为0

UPDATE [People] SET [Number] = @nm WHERE [Name] = @Name

在您的代码中,@nm包含0,因此上述查询应该有效。

我认为实际问题是你试图通过一次比较匹配所有行。那不行。您必须从选择中创建in,如下所示:

UPDATE [People] SET [Number] = @nm WHERE [Name] in (@Name1, @Name2, @Name3)

将名称作为单独的参数传递。

答案 1 :(得分:0)

要将所有条目设置为0,您只需删除WHERE子句,然后将Number设置为0.

UPDATE [People] SET [Number] = 0

如果你想使用一个参数(虽然硬编码没有多大意义),你可以这样做..

UPDATE [People] SET [Number] = @nm

虽然我认为在设置参数时会发生您收到的异常。尝试将@nm设置为int,而不是字符串...(注意0附近缺少引号)

cmd.Parameters.Add("@nm", SqlDbType.Int).Value = 0;

一起没有参数...

SqlConnection con = new SqlConnection(@"Data Source=
    (LocalDB)\MSSQLLocalDB;AttachDbFilename=
    C:\WpfApplication\Database.mdf;Integrated Security=True");
con.ConnectionString = ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
con.Open();

SqlCommand cmd = new SqlCommand();
cmd.CommandText = "UPDATE [People] SET [Number] = 0";
cmd.Connection = con;

cmd.ExecuteNonQuery();

或使用参数..

SqlConnection con = new SqlConnection(@"Data Source=
    (LocalDB)\MSSQLLocalDB;AttachDbFilename=
    C:\WpfApplication\Database.mdf;Integrated Security=True");
con.ConnectionString = ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
con.Open();

SqlCommand cmd = new SqlCommand();
cmd.CommandText = "UPDATE [People] SET [Number] = @nm";
cmd.Parameters.Add("@nm", SqlDbType.Int).Value = 0;
cmd.Connection = con;

cmd.ExecuteNonQuery();