2013-09-03 7 views
7

SQL Serverデータベースにリンクするアプリケーションを開発するための基本的なC#を教えています。私はフォーム2の値をフォームに入れ、ボタンをクリックすると値を挿入できる非常に基本的なアプリケーションを作成しています。私はまた、ConsoleWindowの表のすべてのデータを表示する別のボタンが必要です。インサートは完全に動作しますが、私の唯一の問題は、ShowDataボタンをクリックしても何も起こりません。WindowsフォームアプリケーションでConsole.WriteLine()を使用する方法

私はそれがかなり基本的なものになると思うかもしれませんが、私が言ったように私はまだ学んでいます。

public partial class InsertNames : Form 
{ 
    public InsertNames() 
    { 
     InitializeComponent(); 
    } 

    private SqlConnection thisConnection = new SqlConnection("Data Source=(localdb)\\V11.0;database=Dev"); 

    private void FirstName_TextChanged(object sender, EventArgs e) 
    { 
     string firstName = FirstName.Text; 
    } 

    private void LastName_TextChanged(object sender, EventArgs e) 
    { 
     string lastName = LastName.Text; 
    } 

    private void Insert_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      thisConnection.Open(); 
      SqlCommand insertCommand = thisConnection.CreateCommand(); 
      insertCommand.CommandText = "INSERT INTO Names (FirstName,LastName) Values (@FirstName, @LastName)"; 
      insertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar, 50).Value = FirstName.Text; 
      insertCommand.Parameters.Add("@LastName", SqlDbType.VarChar, 50).Value = LastName.Text; 
      insertCommand.ExecuteNonQuery(); 

      Console.WriteLine(insertCommand); 

      thisConnection.Close(); 
     } 
     catch (SqlException excep) 
     { 
      Console.WriteLine(excep.Message); 
     } 
    } 

    private void ShowData_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      thisConnection.Open(); 

      SqlDataReader myReader = null; 
      SqlCommand selectCommand = new SqlCommand("Select * from Names", thisConnection); 

      myReader = selectCommand.ExecuteReader(); 
      while (myReader.Read()) 
      { 
       Console.WriteLine(myReader["FirstName"].ToString()); 
       Console.WriteLine(myReader["LastName"].ToString()); 
      } 

      thisConnection.Close(); 
     } 
     catch (SqlException excep) 
     { 
      Console.WriteLine(excep.Message); 
     } 
    } 
} 
+0

'OutputWindow'を開き、そこにあなたのデータが出力されるのを見てください。これ以外に何を期待していますか? –

+0

ようこそStackOverflowへ。あなたのタイトルは編集されました。 [「質問には「タイトル内に「タグ」を含める必要がありますか」](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-the-titles)を参照してください。コンセンサス"いいえ、彼らはすべきではありません"。 – Chris

答えて

17

コマンドはコンソールアプリケーションタイプでのみ動作します。ので、Windowsアプリケーションを使用して、必要な出力を表示しない、あなたのアプリケーションは、Windowsフォームアプリケーションと思われる。

Console.WriteLineを使用してコンソールウィンドウに出力を表示する場合は、このフォームプロパティを追加してメインフォームコンストラクタから呼び出す必要があります。コンソールでも同様に開きます。あなたがコンソールとしてアプリケーションの種類を設定することができ、プロジェクトの設定で

 public InsertNames() 
    { 
     AllocConsole(); 
     InitializeComponent(); 
    } 

     [System.Runtime.InteropServices.DllImport("kernel32.dll")] 
     private static extern bool AllocConsole(); 

OR

。その後、コンソールとフォームを取得します。

+0

絶対的な治療をしました、ありがとうございました。 – jeastham1993

+2

素晴らしい!次の行を追加することができます:AllocConsole();どこでも。コードが実行されると、コンソールがポップアウトされます。それはあなたがそれを閉じるまで(しかし、このアプリケーションを閉じて閉じるまで)開いたままになります。ありがとう! – SRO

関連する問題