返回首页


         int st1, st2;

         SqlDataReader rd;

         SqlDataReader rd1;

 

 private void connection()

        {

            if (cn.State == ConnectionState.Open)

            {

                cn.Close();

            }

            cn.Open();

        }  

private void button2_Click(object sender, EventArgs e)

        {

            connection();

 

            this.st1 = Convert.ToInt32(txtC.Text);

            SqlCommand cmd = new SqlCommand();

            cmd.Connection = cn;

            cmd.CommandText = ("select *  from OrderedFood where coustomerId=@CoustomerId");

            cmd.Parameters.AddWithValue("@CoustomerId", this.st1);

            rd = cmd.ExecuteReader();

 

           while (rd.Read())

            {

                this.st2 = Convert.ToInt32(rd.GetValue(2).ToString());

                MessageBox.Show(st2.ToString());

 

                 SqlCommand cmd1 = new SqlCommand();

                cmd1.Connection = cn;

                cmd1.CommandText = ("select [name] from Food where id=@FoodId");

                cmd1.Parameters.AddWithValue("@FoodID", this.st2);

                rd1 = cmd1.ExecuteReader();

                if (rd1.Read())

                {

                    string z;

                    z = rd1.GetValue(0).ToString();

                    for (int i = 0; i <= (checkedListBox1.Items.Count - 1); i++)

                    {

                        checkedListBox1.SetItemChecked(i, false); 

                        string x = checkedListBox1.Items[i].ToString();

                        if (z == x)

                        {

                            checkedListBox1.SetItemChecked(i, true); 

                     

 

                        }

 

                    }

                }

 

            }

         }

现在,这显示了一个错误"已经有一个开放的DataReader,必须先关闭命令。"
但如果是读者密切的数据,我可以不能够得到而(rd.Read())
读者剂量完成retrive数据。所以,我应该怎么做?

回答

评论会员: 时间:2
D