如何在Windows窗体应用程序中使用Console.WriteLine()

时间:2013-09-03 21:07:29

标签: c# sql sql-server button

我正在教自己基本的C#,以开发链接到SQL Server数据库的应用程序。我正在创建一个非常基本的应用程序,它允许我在表单上输入2个值,然后在按钮上单击插入值。我还想要一个单独的按钮,它向我显示ConsoleWindow中表格中的所有数据。插件工作得很好,我现在唯一的问题是当我点击ShowData按钮时没有任何反应,任何想法?

我可以想象这将是一个非常基本的东西,但正如我所说,我还在学习。

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);
        }
    }
}

1 个答案:

答案 0 :(得分:19)

Console.WriteLine命令仅在控制台应用程序类型中有效。所以使用Windows应用程序不显示所需的输出,似乎您的应用程序是Windows窗体应用程序。

如果你想在控制台窗口上使用Console.WriteLine显示输出,而窗体应用程序需要添加这个属性并从主窗体构造函数中调用它。然后它也会用控制台打开。

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

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

在项目设置中,您可以将应用程序类型设置为控制台。然后你也会获得控制台和表格。