1

ローカルデータベースから値を選択しようとすると、問題なく実行されます。しかし、私が挿入しようとすると、クエリを実行して削除するが、それはすべての行に影響を与えていない。ローカルデータベース(.sdf)で挿入および削除が発生しない

これは私が私のローカルデータベースから行を削除するために使用しているコードです:

 SqlCeConnection sqlConnection1 = new SqlCeConnection(); 
     sqlConnection1.ConnectionString = "Data Source = Database1.sdf"; 

     SqlCeCommand cmd = sqlConnection1.CreateCommand(); 
     cmd.CommandType = System.Data.CommandType.Text; 
     cmd.CommandText = "DELETE FROM table1 WHERE slno=2"; 
     cmd.Connection = sqlConnection1; 

     sqlConnection1.Open(); 
     cmd.Prepare(); 
     int aff=cmd.ExecuteNonQuery();//here its returning '0' 
     MessageBox.Show(aff.ToString()); 
     sqlConnection1.Dispose(); 
     sqlConnection1.Close(); 
+0

例外を処理してください。コードをtry catchブロックに置き、例外がスローされたことを確認しようとすると、問題を診断するのに役立ちます。 – AnarchistGeek

+0

愚かな質問ですが、あなたはslno = 2のtable1の行を持っていますか? –

+0

本当に、データは実際にデータベースに入っていますか?正しい.sdfファイルにアクセスしていますか?問題は、プロジェクトフォルダに1つ、bin \ Debugに1つあることがあります。 –

答えて

1

削除がすべての行に影響を与えない可能性があります。余談として

、私はあなたのコードでusingステートメントを使用して助言する:

using (SqlCeConnection conn = new SqlCeConnection("Data Source = Database1.sdf")) 
using (SqlCeCommand comm = new SqlCeCommand("DELETE FROM table1 WHERE slno = 2", conn)) 
{ 
    conn.Open(); 
    comm.CommandType = CommandType.Text; 
    comm.ExecuteNonQuery(); 
} 

これがあなたのために、関連するオブジェクトの処分を処理します。

SQLがデータベースに関連しており、事前に接続文字列を使用して正常に接続していると仮定すると、データベースに対して削除アクションが実行される可能性があります。

+0

それもうまくいきません。 – deepi

+0

返される行では、管理スタジオで同じSQLを実行して、削除自体が何かを行うことを確認することをお勧めします。 –

+0

私はまたテーブルをチェックしています – deepi

関連する問題