string temp = txt姓名查找.Text;            string ConStr = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(ConStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText =@"Select *from T_Person where Name LIKE '%:temp%'";
                    using (SqlDataReader read=cmd.ExecuteReader())
                    {
                        while(read.Read())
                        {
                           if (lbx模糊显示.Text == "")
                          {
                            lbx模糊显示.Text = Convert.ToString(read.GetOrdinal("Name")) ;
                          }
                          else
                         {
                            lbx模糊显示.Text = lbx模糊显示.Text + Convert.ToString(read.GetOrdinal("Name")) ; 
                          }
                        }
                         MessageBox.Show(Convert.ToString(read.GetOrdinal("Name")));
                    }                                   }
                if (lbx模糊显示.Text != "")
                {
                    lbx模糊显示.Visible = true;
                }
                else
                {
                    lbx模糊显示.Visible = false;
                }
            }赋值给cmd.CommandText  语句格式要怎么写?错那里?我用ExecuteReader()可以吗?
这个程序错那里呢?

解决方案 »

  1.   

    cmd.CommandText =@"Select *from T_Person where Name LIKE '%"+temp+"%'";
      

  2.   

    还是找不到。。我用MessageBox.Show(Convert.ToString(read.GetOrdinal("Name")));弹出来是1.
    可以帮看下代码吗?那里有错,谢谢!
      

  3.   

    Convert.ToString(read.GetOrdinal("Name")为1是找不到的原因吗?
      

  4.   

    已经好了,
    不过我是换成DataSet来实现的。
    但为什么ExecuteReader不行,我还是不懂。
    总之谢谢您的帮助!