0

SQL Server CE データベース用の単純な挿入ステートメントを作成しようとしていますが、コードは完全に機能します。...行が実際にデータベースに挿入されないことを除いて...

私のコードは次のとおりです。

public static int InsertTourCreater(string userName, string password)
{
    SqlCeConnection connection = GuidedTourDB.GetConnection(); //Returns connection
    string insertStatement =
            "INSERT INTO [Tb_Creater] " +
            "([User_Name], [Password]) " +
            "VALUES (@UserName, @Password)" ;
    SqlCeCommand insertCommand = new SqlCeCommand(insertStatement, connection);
    insertCommand.Parameters.Add(new SqlCeParameter("@UserName", SqlDbType.NVarChar)).Value = userName;
    insertCommand.Parameters.Add(new SqlCeParameter("@Password", SqlDbType.NVarChar)).Value = password; 

    try
    {
        connection.Open();
        int success = insertCommand.ExecuteNonQuery();
        return success; 
    }

コードは正常に実行されます。デバッグ モードでステップ実行すると、接続が開き、値がすべて正しく追加され、値 1 が返されますが、サーバー エクスプローラーExecuteNonQuery()でテーブル データを確認すると、レコードがありません。Tb_Creater

ビジュアルスタジオをリフレッシュして再起動しました。いない。例外はスローされません。

注:AddWithValue()文字列が既定で (SQL Server CE では使用できない) に変換されて問題が発生するのではないかと心配したためではなく、そのようなパラメーターを追加してvarcharいますが、コードはどちらの方法でも同じように動作します。

4

1 に答える 1

0

私はたまたまこの問題に遭遇し、解決しました。デバッグ出力パスに移動し、管理者モードでアプリ (exe) を実行します。sdf ファイルにアクセスできないというログ メッセージを見たからです。実際には、Visual Studio にエラー ポップアップは表示されません。

于 2015-12-15T14:55:51.947 に答える