cn.Open();
SqlCommand cmd=new SqlCommand("usp_queryInfo",cn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@condition",SqlDbType.Char,10);
cmd.Parameters.Add("@value",SqlDbType.Char,10);
cmd.Parameters["@condition"].Value=ddlInfo.SelectedValue;
cmd.Parameters["@value"].Value=tbSearchValue.Text;
SqlDataReader dr=cmd.ExecuteReader();  
DataGrid1.DataSource=dr;
DataGrid1.DataBind();

解决方案 »

  1.   

    if(dr.Read())
    {
    //为什么程序不执行该语句????
    Label3.Text=dr.getstring(0);

    }
    这样对了,
      

  2.   

    select * from employeedata where @condition=@value
    这句 不对了
    字段条件不能以参数形式传递
    CREATE PROCEDURE usp_queryInfo
    (
    @condition char(10)
    @value char(10)
    )
    AS
    declare @aa Nvarchar(100)
    set @aa='select * from employeedata where '+ @condition + '=' +@value
    exec (@aa)
    go
      

  3.   

    是不是存储过程的问题???@condition=@value
    condition是字段名???
      

  4.   

    @condition=@value这里的问题!条件语句里面不能把参数作为字段来使用你可以使用Execute(exec)来执行一个拼接的字符串!如uffeng(阿呆)所说!
      

  5.   

    datagrid 能够直接和DataReader绑定吗?
      

  6.   

    当我选择下拉列表为 性别 时,并在文本框中输入:女,出现如下错误:
    列名 '女' 无效。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 列名 '女' 无效。源错误: 
    行 98:  cmd.Parameters["@condition"].Value=ddlInfo.SelectedValue.ToString().Trim();
    行 99:  cmd.Parameters["@value"].Value=tbSearchValue.Text;
    行 100: SqlDataReader dr=cmd.ExecuteReader();
    行 101:            dgEmployeeInfo.DataSource=dr;
    行 102: dgEmployeeInfo.DataBind();===========================================
    我感觉好象是条件和值搞反了,怎么回事??
    请高手继续关注!
     
      

  7.   

    条件不能那样作参数,同意 uffeng(阿呆)