用存储过程返回搜索结果,请指教!

yumei20001 2004-05-09 09:19:05
我建了一个存储过程:
CREATE PROCEDURE usp_queryInfo
(
@condition char(10),
@value char(10)
)
AS
select * from employeedata where @condition=@value
go
程序里的代码如下:
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();
//如果要绑定到DataGrid,此处该怎么写????????
if(dr.Read())
{
//为什么程序不执行该语句????
Label3.Text=dr["姓名"].ToString();

}




}
...全文
65 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxcc 2004-05-09
  • 打赏
  • 举报
回复
条件不能那样作参数,同意 uffeng(阿呆)
yumei20001 2004-05-09
  • 打赏
  • 举报
回复
高手帮帮忙啊!!!!!!!!!!!!!!!!!!!
yumei20001 2004-05-09
  • 打赏
  • 举报
回复
当我选择下拉列表为 性别 时,并在文本框中输入:女,出现如下错误:
列名 '女' 无效。
说明: 执行当前 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();

===========================================
我感觉好象是条件和值搞反了,怎么回事??
请高手继续关注!

bitsbird 2004-05-09
  • 打赏
  • 举报
回复
of course!
yumei20001 2004-05-09
  • 打赏
  • 举报
回复
datagrid 能够直接和DataReader绑定吗?
yumei20001 2004-05-09
  • 打赏
  • 举报
回复
高手帮小弟看看啊!!!!!!!!!!!!!!!
cuike519 2004-05-09
  • 打赏
  • 举报
回复
@condition=@value这里的问题!

条件语句里面不能把参数作为字段来使用你可以使用Execute(exec)来执行一个拼接的字符串!如uffeng(阿呆)所说!
taotao_kof 2004-05-09
  • 打赏
  • 举报
回复
是不是存储过程的问题???@condition=@value
condition是字段名???
uffeng 2004-05-09
  • 打赏
  • 举报
回复
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
yumei20001 2004-05-09
  • 打赏
  • 举报
回复
我刚才用上面的方法试过,不出错,但搜索结果没有返回记录
xjshuaishuai 2004-05-09
  • 打赏
  • 举报
回复
if(dr.Read())
{
//为什么程序不执行该语句????
Label3.Text=dr.getstring(0);

}
这样对了,
xjshuaishuai 2004-05-09
  • 打赏
  • 举报
回复
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();

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧