我正在教自己基本的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);
}
}
}
答案 0 :(得分:19)
Console.WriteLine
命令仅在控制台应用程序类型中有效。所以使用Windows应用程序不显示所需的输出,似乎您的应用程序是Windows窗体应用程序。
如果你想在控制台窗口上使用Console.WriteLine
显示输出,而窗体应用程序需要添加这个属性并从主窗体构造函数中调用它。然后它也会用控制台打开。
public InsertNames()
{
AllocConsole();
InitializeComponent();
}
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
或强>
在项目设置中,您可以将应用程序类型设置为控制台。然后你也会获得控制台和表格。