如果studentID是表中的主键,然后使用:
DataRow row = dt.Rows.Find(studentID);
if (row != null)
textBox1.Text = row["StudentName"].ToString();
否则使用dt.Select
方法。 与UI代码顺便说一句混合数据访问代码是不是很不错的主意
UPDATE:你也可以使用LINQ
string name = (from row in dt.AsEnumerable()
where row.Field<int>("StudentID") == studentID
select row.Field<string>("StudenName"))
.Single();
UPDATE:如果要输入学生的ID,并希望得到学生的名字,那么你就可以刚刚从数据库中检索学生姓名,通过参数设置为SQL命令:
private string GetStudentName(int studentID)
{
string connString = @"Data Source=PC-PC\PC;Initial Catalog=Test;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(connString))
{
string query = "SELECT StudentName FROM Entry WHERE StudentID = @studentID";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.Add("@studentID", SqlDbType.Int).Value = studentID;
conn.Open();
return (string)cmd.ExecuteScalar();
}
}
考虑也只返回第一个条目(如果StudentID不是PK)和验证统一的DBNull。
UPDATE:如果你需要找回学生的几个属性,那么我创建的类学生:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Grade { get; set; }
}
而且从数据读取器填充它的属性:
private Student GetStudent(int studentID)
{
string connString = @"Data Source=PC-PC\PC;Initial Catalog=Test;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(connString))
{
string query = "SELECT * FROM Entry WHERE StudentID = @studentID";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.Add("@studentID", SqlDbType.Int).Value = studentID;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (!reader.Read())
throw new Exception("Student not found");
return new Student()
{
Id = (int)reader["StudentID"],
Name = (string)reader["StudentName"],
Grade = (string)reader["Grade"]
};
}
}
然后,当你进入学生ID在文本框中,从数据库检索学生并显示其控件中的属性:
int studentID = Int32.Parse(idTextBox.Text);
Student student = GetStudent(studentID);
nameTextBox.Text = student.Name;
gradeTextBox.Text = student.Grade;
它说表没有主键,但它有。 btw DataRow row = dt.Rows.Find(studentID);什么是studentid?这是studentid列吗? – aliprogrammer
@aliprogrammer我不知道你在哪里得到studentID。这是你样本中的'3'。如果studentID不是PK,则使用Select方法'dt.Select(“StudentID =”+ studentID);'。顺便说一句,你如何获得学生证? –
数字3是第三行,但不是学生ID。 – aliprogrammer