簡體   English   中英

C#查詢組合框所選文本

[英]c# query for combobox selected text

我正在創建一個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(););

請幫忙

您需要像這樣將變量a放入查詢中:

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

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

請注意,我對您的查詢進行了一些整理,並介紹了parameterized queries ,以防您不熟悉它們。

最好的方法是看起來像這樣:

"Where Semester = @Semester"

然后,在下一行中,將Parameter添加到SqlCommand對象中,如下所示:

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

這使SQLCommand對象知道用您從用戶那里獲得的值替換您的變量(我現在將其命名為@Semester)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM