--可以用永真条件,如:1=1等类似表达式        private void button1_Click(object sender, System.EventArgs e)
        {
            strSQL = "select *  from Info where 1=1 ";
            if (tbnum.Text.ToString() != "")
                strSQL += " and 工资号='" + tbnum.Text.ToString() + "' ";
            if (tbname.Text.ToString() != "")
                strSQL += " and 姓名='" + tbname.Text.ToString() + "' ";
            if (tbdepart.Text.ToString() != "")
                strSQL += " and 部门='" + tbdepart.Text.ToString() + "' ";
            if (tbtype.Text.ToString() != "")
                strSQL += " and 人员分类='" + tbtype.Text.ToString() + "' ";
            if (tbyear.Text.ToString() != "")
                strSQL += " and 年='" + tbyear.Text.ToString() + "' ";
            if (tbmonth.Text.ToString() != "")
                strSQL += " and 月='" + tbmonth.Text.ToString() + "' ";            cmd = new SqlCommand(strSQL, conn);
            conn.Open();            cmd.ExecuteNonQuery();
            SqlDataAdapter da;
            da = new SqlDataAdapter(cmd);
            da.Fill(myData);
            dg1.SetDataBinding(myData, myData.Tables[0].ToString());
            conn.Close();
        }

解决方案 »

  1.   

    --在这句前面跟一下,strsql
    --随便可以COPY它到查询分析器,看语句能否执行,这样先排除是SQL语句出错的问题后,再看你程序有没问题
    cmd=new SqlCommand(strSQL,conn);
      

  2.   

    支持  wangtiecheng 的方法  在  where 的后面加上    1=1  后, 将选择条件进行 and 连接时才不会出错。按楼主原来程序,如果没选择任何条件,肯定会出错。关键就是 and 连接关键字出错.
      

  3.   

    wangtiecheng 大哥的是对的 我做好了 谢谢各位大哥的关心  谢谢