2013-09-03 60 views
7

Tôi tự dạy C# cơ bản với một khung nhìn để phát triển các ứng dụng liên kết đến cơ sở dữ liệu SQL Server. Tôi đang tạo một ứng dụng rất cơ bản cho phép tôi gõ 2 giá trị một biểu mẫu và trên nút bấm chèn các giá trị. Tôi cũng muốn có một nút riêng biệt cho tôi thấy tất cả dữ liệu từ bảng trong ConsoleWindow. Chèn hoạt động hoàn hảo, vấn đề duy nhất của tôi bây giờ là khi tôi nhấp vào nút ShowData không có gì xảy ra, bất kỳ ý tưởng?Cách sử dụng Console.WriteLine() trong windows Forms Application

Tôi có thể tưởng tượng nó sẽ là một cái gì đó khá cơ bản nhưng như tôi đã nói tôi vẫn đang học.

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

Mở 'OutputWindow' và xem dữ liệu của bạn sẽ được xuất tại đó. Những gì bạn mong đợi khác hơn này? –

+0

Chào mừng bạn đến với StackOverflow. Tiêu đề của bạn đã được chỉnh sửa. Vui lòng xem, ["Câu hỏi có nên bao gồm" thẻ "trong tiêu đề của họ không?"] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), nơi sự đồng thuận là "không, họ không nên". – Chris

Trả lời

17

Console.WriteLine lệnh chỉ hoạt động trong loại ứng dụng giao diện điều khiển. vì vậy việc sử dụng ứng dụng windows không hiển thị đầu ra yêu cầu, có vẻ như ứng dụng của bạn là ứng dụng biểu mẫu windows.

nếu bạn muốn hiển thị đầu ra trên cửa sổ Bảng điều khiển bằng cách sử dụng Console.WriteLine với ứng dụng biểu mẫu cửa sổ cần thêm thuộc tính này và gọi nó từ trình tạo biểu mẫu chính.

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

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

HOẶC

Trong thiết lập dự án bạn có thể đặt loại ứng dụng như Console. Sau đó, bạn sẽ nhận được giao diện điều khiển và hình thức là tốt.

+0

Làm việc một điều trị tuyệt đối, cảm ơn rất nhiều. – jeastham1993

+2

Tuyệt vời! Bạn có thể thêm dòng này: AllocConsole(); bất cứ đâu. Giao diện điều khiển sẽ xuất hiện khi mã sẽ được thực hiện. Nó sẽ vẫn mở cho đến khi bạn đóng nó (nhưng đóng nó đóng ứng dụng này). Cám ơn vì cái này! – SRO