C# c查询组合框所选文本

C# c查询组合框所选文本,c#,C#,我正在创建一个自动生成时间表的windows窗体应用程序。当用户从1-8下拉列表中选择学期号时,我在编写查询时遇到问题,那么我应该在查询中编写什么?我的代码如下 private void button_generate_Click(object sender, EventArgs e) { SqlCommand com; SqlConnection con = new SqlConnection("Data Source=MAJOR-DYNASTI;Initial Catalog

我正在创建一个自动生成时间表的windows窗体应用程序。当用户从1-8下拉列表中选择学期号时,我在编写查询时遇到问题,那么我应该在查询中编写什么?我的代码如下

private void button_generate_Click(object sender, EventArgs e)
{
    SqlCommand com;
    SqlConnection con = new SqlConnection("Data Source=MAJOR-DYNASTI;Initial Catalog=ESS;Integrated Security=True");
   con.Open();
    string a = comboBox_semester.SelectedText;
    string str = "SELECT  CourseName, TeacherName, RoomName FROM Course_teacher, RoomInfo where Semester= ORDER BY NEWID(); ";
    com = new SqlCommand(str, con);
    SqlDataReader reader = com.ExecuteReader();
    if (reader.HasRows)
    {

        Random random = new Random();
        var labels = new Label[] { label1, label2, label3, label4, label5, label6, label7, label8,label9,label10,label11,label12,label13,label14,label15,label16,
                                   label17,label18,label19,label20,label21,label22,label23,label24,label25,label26,label27,label28,label29,label30,label31,
                                    label32,label33,label34,label35,label36,label37,label38,label39,label40,label41,label42,label43,label44,label45,label46,label47,label48,
                                    label49,label50};
        label1.Text = ""; label2.Text = ""; label3.Text = ""; label4.Text = ""; label5.Text = ""; label6.Text = "";
        label7.Text = "";label8.Text = "";label9.Text = "";label10.Text = "";label11.Text = "";label12.Text = "";label13.Text = "";label14.Text = "";label15.Text = "";label16.Text = "";
                                   label17.Text = "";label18.Text = "";label19.Text = "";label20.Text = "";label21.Text = "";label22.Text = "";label23.Text = "";label24.Text = "";label25.Text = "";label26.Text = "";label27.Text = "";label28.Text = "";label29.Text = "";label30.Text = "";label31.Text = "";
                                   label32.Text = ""; label33.Text = ""; label34.Text = ""; label35.Text = ""; label36.Text = ""; label37.Text = ""; label38.Text = ""; label39.Text = ""; label40.Text = ""; label41.Text = ""; label42.Text = ""; label43.Text = ""; label44.Text = ""; label45.Text = ""; label46.Text = ""; label47.Text = ""; label48.Text = "";
                                    label49.Text = "";label50.Text = "";

        if (
            comboBox1.SelectedItem==null ||
            comboBox2.SelectedItem==null ||
            comboBox_semester.SelectedItem==null)
        {
            MessageBox.Show("Please Select Complete Detail");

        }
        else
        {
            while (reader.Read())
            {

                int randomNumber = random.Next(1, 50);

                labels[randomNumber].Text = String.Format("{0},\r\n{1},\r\n{2}", reader["CourseName"], reader["TeacherName"], reader["RoomName"]);
            }
        }
    }
我想查询这两行

string a = comboBox_semester.SelectedText;
string str = "SELECT  CourseName, TeacherName, RoomName FROM Course_teacher, RoomInfo where Semester=(what should I need to write here) ORDER BY NEWID(););

请帮助

执行此操作的最佳方法是如下所示:

"Where Semester = @Semester"
然后,在下面的一行中,向SqlCommand对象添加一个参数,如下所示:

com.Parameters.AddWithValue("@Semester", a);

这让SQLCommand对象知道用从用户处收到的值替换您的变量(我暂时将其命名为@Serm)。

您需要将变量a放入查询中,如下所示:

string str = "SELECT CourseName, TeacherName, RoomName FROM Course_teacher, " + 
"RoomInfo WHERE Semester = @Semester ORDER BY NEWID()";

com.Parameters.Add(new SqlParameter("Semester", a));

<>请注意,我清理了你的查询,并且我介绍了,如果你不熟悉他们。

你有一个String A来保存用户选择的学期,而你不确定如何将它输入到你的查询中?这不回答你的问题,但是我认为在Co BOBOX选择上查询是不明智的。因为用户可能会犯错误,或者只是随机单击可能会减慢/冻结应用程序的选项/MVC@DrewKennedy是的,这是我的问题,通过将查询结果分配给随机标签,您到底想要实现什么?不完全是关于这个话题,但我很好奇。@aaron我正试图为不同的学期制定一个时间表。我希望当我从组合框中选择第1学期时,它应该通过选择在1学期中教授的科目来生成时间表,以此类推。。这就是我想做的。。。你能帮我一下吗?meIt向我显示了一个错误,表示使用了未分配的局部变量com。为什么会这样?@Fary这意味着你没有正确粘贴上面的代码。您需要首先实例化com:com=newsqlcommandstr,con;您的按钮的点击事件是否设置为您希望触发的方法?