2012-04-19 15 views
0

ユーザー名とパスワードを保存できるようにデータベースを作成しています。私は正常にMicrosft Visual Express C#2010でDBを作成しました。プログラムがデータベースに接続していないのはなぜですか?

私のプログラムは正常に動作しているようで、エラーメッセージは表示されませんが、私のプログラムは実際には作成していないようですデータベースへの要求、または結果を返さない。どうしたの?

private void button1_Click(object sender, EventArgs e) 
    { 
     string connection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"; 
     SqlConnection cn = new SqlConnection(connection); 
     try 
     { 
      cn.Open(); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Did not connect"); 
     } 
     string username = textBox1.Text; 
     string password = maskedTextBox1.Text; 
     string sqlquery = ("SELECT * FROM User WHERE Username = '" + textBox1.Text + "'"); 
     sqlquery = "INSERT INFO [User] (Username, Password) VALUES ('" + textBox1.Text + "','" + maskedTextBox1.Text + "')"; 
     SqlCommand Command = new SqlCommand(sqlquery, cn); 
     Command.Parameters.AddWithValue("Username", username); 
     Command.Parameters.AddWithValue("Password", password); 
    } 
    private void Form1_load(object sender, EventArgs e) 
    { 
     string connection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"; 
     SqlConnection cn = new SqlConnection(connection); 
     try 
     { 
      cn.Open(); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Did not connect"); 
     } 
    } 

} 

}

+0

不適切な接続文字列を使用している可能性があります。 "Microsft Visual Express C#2010"は製品ではありません。私はあなたがVisual Studio Expressを使用していると考えます。どのようにデータベースを作成しましたか? – Terry

+1

あなたはフィードバックがないと言うので、あなたのプログラムは実行されるか、または...? –

+1

try/catchブロックを削除すると、実際のエラーが発生します。エラー・タイプ、メッセージ、およびスタック・トレースを調べて、正確な問題の内容を判別できます。ユーザーがmsgボックスで「ok」をクリックすると、tryキャッチも問題を引き起こします。 –

答えて

3

あなたが実際にSqlCommandを実行していないので、あなたが何かが起こる「を参照してください」ではないだろうと論理的なようです。 button1_Clickの最後に次の行を追加してみてください:

Command.ExecuteNonQuery(); // actually execute the INSERT INFO... query 

あなたのSQLコードを持ついくつかの問題を持っていますが、このコマンドを実行したら、あなたは彼らのために例外を受け取ります。

+0

良いキャッチ。また、メモリリークを防ぐためにADO.NETオブジェクトを適切に処理する必要があります。 –

+0

かなり多くの改善がなされていますが、これは私が手元にある問題以上のものを除いたOPの宿題です。 – user7116

+0

今、私はフィードバックを得ています。私はエラーが発生しましたが、今私は感謝6を取り除くために何かを持っています。 – Adam

関連する問題