gpt4 book ai didi

c# - 如何使用 SQL Server 在 C# 中循环值

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:21 25 4
gpt4 key购买 nike

我想做的是在我的 comboSubDep 中添加项目,它比较老师的科目。例如:如果我为我的科目选择数学,则应该只显示该科目的教师。但我不想将它直接与特定主题进行比较。我只希望它循环到数据库中的每个主题。其中的主题不是恒定的。

con.Open();
cmd = new SqlCommand("SELECT Emp_FName, Emp_LName, T_Subject FROM Employee WHERE Emp_Position = 'Teacher'", con);
rdr = cmd.ExecuteReader();

while (rdr.Read())
{
string sub = rdr["T_Subject"].ToString();
string fname = rdr["Emp_FName"].ToString();
string lname = rdr["Emp_LName"].ToString();
string fulname = fname + ' ' + lname;

if (ComboSubDep.Text != sub)
{
txtTeacher.Text = "";
txtTeacher.Items.Clear();
}
else
{
txtTeacher.Text = "";
txtTeacher.Items.Clear();
txtTeacher.Items.Add(fulname);
}
}

rdr.Close();
con.Close();

最佳答案

您的代码非常困惑。你得到你的读者,然后遍历每一行。对于每一行,您:

  • 获取列内容(精细)
  • 如果老师的科目不是你想要的
    • 清除 txtTeacher 中的所有项目 - 全部!
  • else(如果老师的科目是你想要的)
    • 清除 txtTeacher 中的所有项目
    • 将当前作为新项目添加到txtTeacher

第一点:我假设 txtTeacher 是一个 ComboBox。通常,当人们给变量名类型前缀时,前缀 txt 会表示一个 TextBox:这会使代码看起来很奇怪并且不太受支持。 'cbo' 是 ComboBox 更常见的前缀。但是,这不会阻止您的代码正常工作。

这是做什么的。想象一下,你总共有 4 位老师。第一个主题不正确,因此您清除组合框。第二个是你清除组合并添加老师。第三个也是,所以你清除组合(摆脱第二个)并添加第三个老师。第四个不是这样你清除组合。

在处理结束时,您有一个空的组合框。你能明白为什么吗?这是一件简单的事情,但代码应如下所示:

con.Open();
cmd = new SqlCommand("SELECT Emp_FName,Emp_LName,T_Subject from Employee where Emp_Position = 'Teacher'", con);
rdr = cmd.ExecuteReader();

txtTeacher.Items.Clear;
while (rdr.Read())
{
string sub = rdr["T_Subject"].ToString();
string fname = rdr["Emp_FName"].ToString();
string lname = rdr["Emp_LName"].ToString();
string fulname = fname + ' ' + lname;

if (ComboSubDep.Text == sub)
{
txtTeacher.Items.Add(fulname);
}
}

您可以通过使用调试器逐行单步执行代码来捕获此类事件。这应该告诉你为什么会这样。

关于c# - 如何使用 SQL Server 在 C# 中循环值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29899883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com