2016-05-12 17 views
1

私は最近C#で新しいですし、データベースへの接続に関するチュートリアルに従うか、表示用の接続またはSELECTコマンドはOKでした。フォーラムのスレッドに基づいていくつかのリビジョンを作成しました私のコードは良くなりましたが、私がINSERTのSQL Serverに入っていた時、私はいくつかの問題があります。私はデータを挿入することができましたが、プログラムを再実行すると、以前に挿入したデータはデータベースにはありませんでした。ここでC#はSQL Serverデータベースにデータを挿入できません

は、インサート

string commandText = "INSERT INTO loginInfo (name, pass, role) VALUES(@name, @pass, @role)"; 

using (connection = new SqlConnection(connectionString)) 
{ 
    SqlCommand command = new SqlCommand(commandText, connection); 
    command.CommandType = CommandType.Text; 

    command.Parameters.AddWithValue("@name", textBox1.Text); 
    command.Parameters.AddWithValue("@pass", textBox2.Text); 
    command.Parameters.AddWithValue("@role", textBox3.Text); 

    try 
    { 
     command.Connection.Open(); 
     command.ExecuteNonQuery(); 
    } 
    catch 
    { 
    } 
    finally 
    { 
     command.Connection.Close(); 
    } 
} 

上の私のコードは、私はあなたがあなたにAttachDbFileName=句を使用している場合

+4

空のキャッチブロックを削除し、例外をチェックします。何が間違っているのかを教えてください。 – doerig

+0

'ExecuteNonQuery'の後に接続を閉じることができますか? –

+0

+1 to @doerig。空のキャッチは絶対にしないでください。ステップバイステップのデバッグを試して、どこで例外が発生しているかを確認してください。データが挿入されているかどうかにかかわらず、挿入のステータスを示す非問い合わせ返り値「int」を実行します。 –

答えて

5

を助けてください...簡単なCRUDを作成しようとしているが、データを保存していないよですよく知られている問題の犠牲になっている可能性があります。データを確認するときに、データベース(ファイル)が間違っていると考えられます。

のVisual Studioでアプリを実行している場合、それは(あなたのApp_Dataディレクトリからの出力ディレクトリに - 通常.\bin\debug - アプリ走る).mdfファイルの周りにコピーされ、最も可能性が高い、あなたのINSERT作品だけで罰金 - しかし、あなたはの間違った.mdfファイルを最後に見ているだけです!

このアプローチを採用したい場合は、connection.Close()コールにブレークポイントを設定してから、.mdfファイルをSQL Server Mgmt Studio Expressで検査してみてください。データはほぼ確実です。私の意見では

長期的な実行可能な解決策は、に次のようになります。

  1. SQL Server Expressをインストールします(そして、あなたはすでにとにかくことをやった)

  2. は、SQL Server Management StudioのExpressをインストール

  3. それを論理名を与え、SSMSエクスプレスでデータベースを作成します(例えばYourDatabase

  4. 論理的なデータベース名(サーバーに作成するときに指定します)を使用して接続します。物理データベースファイルとユーザーインスタンスを混乱させないでください。その場合は、接続文字列のようなものになります:

    Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True 
    

    と他のすべてが前とまったく同じです...

はまた、より多くのためにアーロン・ベルトランの優れたブログ記事Bad habits to kick: using AttachDbFileNameを見ます背景情報

+0

SSMS Expressがインストールされていて、サービスデータベースを使用していました。エクスプローラを右クリックして追加し、サービスベースのデータベースを追加しました – yok2xDuran

関連する問題