2017-04-04 7 views
-3

私は2つの列を持つSQL Serverテーブルを持っています。すべてのSQL Serverデータベースの値をリセットするC#?

は、私がupdateコマンドを使用してみましたが、私はエラーをintに文字列を変換することはできません得た新しいもの

ですべての値をリセットしたいです。

すべての列を更新したい

どうすればこの問題が解決されますか?

+1

文字列をintとして明示的に使用しようとしているため、コード(特に更新コマンド)を表示 – EpicKip

+0

どのようなSQLを使用しましたか? –

+1

あなたの投稿を編集し、試してみたコードの例を入れてください。このリンクをチェックしてください。 – bradbury9

答えて

0

あなたは多くのポイントがないですが、それがハードコードされている場合(パラメータを使用したい場合は、単に0

UPDATE [People] SET [Number] = 0 

に等しいWHERE句その後、設定番号を削除することができます私は、パラメータを設定するときに、あなたが受けている例外が発生していると思いますが)、あなたは...

UPDATE [People] SET [Number] = @nm 

これを行うことができます。

...

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(); 

またはパラメータと...パラメータなしですべて一緒に

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

(0囲む引用符の通知欠如)... int型ではなく文字列として@nmを設定してみてください

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(); 
+0

名前を正しくフィルタリングしないため、このコードは機能しません。 –

0

あなたは0に値を設定したい場合は、0に値を設定する必要があります。

あなたのコードで
UPDATE [People] SET [Number] = @nm WHERE [Name] = @Name 

@nmを、0が含まれているので、上記のクエリが動作するはずです。

実際の問題は、すべての行を1つの比較で照合しようとしていることだと思います。それはうまくいきません。

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

、別のパラメータとして名前を渡す:あなたはそうのように、選択からinをしなければなりません。 0にすべてのエントリを設定するには

+0

いいえ、私はちょうどそれをタイプしていました。アップデートを参照してください。 –

関連する問題