我的代码有什么问题吗?它没有在文本框中显示数据。同样的功能适用于数据库中的另一个表,但不适用于此表。
private void metroButton1_Click(object sender, EventArgs e)
{
con = new SqlConnection(constr);
String query = "Select FROM Student WHERE Std_ID = '" + metroTextBox1.Text + "'";
cmd = new SqlCommand(query, con);
con.Open();
try
{
using (SqlDataReader read = cmd.ExecuteReader())
{
while (read.Read())
{
// metroTextBox1.Text = (read["ID"].ToString());
metroTextBox2.Text = (read["Name"].ToString());
metroTextBox3.Text = (read["F_Name"].ToString());
metroTextBox4.Text = (read["Std_Age"].ToString());
metroTextBox5.Text = (read["Address"].ToString());
metroTextBox6.Text = (read["Program"].ToString());
metroComboBox1.Text = (read["Course"].ToString());
}
}
}
finally
{
con.Close();
}
}
答案 0 :(得分:2)
您需要在选择语句中提供列名称或选择*
例如:
String query = "Select * from Student WHERE Std_ID = '" + metroTextBox1.Text + "'";
与问题无关:如果您有一个给定ID的记录,则可以将while循环更改为if条件。即使有很多给定id的记录,你也会看到最后一条记录数据,因为while循环会覆盖每条记录中的文本框。
更新:
Syntax没有任何问题,因为语法相同 致力于修改教师职业。
不,这是不正确的,请删除代码中的try catch,然后您会看到syntax error