关于sql存储过程中参数和通配符的问题

sillyfox 2003-07-21 03:15:14
sql存储过程中column like @para
然后aspx里面:
prm = cmd.Parameters.Add("@para", SqlDbType.Char, 10);
prm.Direction = ParameterDirection.Input;
prm.Value = str_para+"%";

我用str_para=123时候要能查询到12345,可是这样不行
请问应该如何解决?
...全文
220 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qwbyxw 2003-07-21
  • 打赏
  • 举报
回复
改成这样,以后修改Sql语句都很方便,
比如可查找只要字段内容含有@para的所有记录
也可将LIKE改为CHARINDEX来使用

**************总之,用了存储过程,将要充分利用其灵活性。**********

sql存储过程中用column like @para+'%'
然后aspx里面:
prm = cmd.Parameters.Add("@para", SqlDbType.Char, 10);
prm.Direction = ParameterDirection.Input;
prm.Value = str_para;
lostinetdotcom 2003-07-21
  • 打赏
  • 举报
回复
用LIKE还不如用CHARINDEX:

WHERE CHARINDEX(@para,columnX)=1

-->
cmd.Parameters.Add("@para",str_para);
crashloopbackoff 2003-07-21
  • 打赏
  • 举报
回复
用SqlDbType.VarChar试试
batisituta 2003-07-21
  • 打赏
  • 举报
回复
请检查str_para是否有值,是否为一个字符串。
batisituta 2003-07-21
  • 打赏
  • 举报
回复
请检查str_para是否有值,是否为一个字符串。
saucer 2003-07-21
  • 打赏
  • 举报
回复
把你的存储过程以及你调用它的编码贴出来,或者试试

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script language="C#" runat="server">
void Page_Load(Object o, EventArgs e)
{
SqlConnection conn = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=;");
SqlCommand cmd = new SqlCommand("GetAuthorByName", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.VarChar, 10));
cmd.Parameters["@name"].Value = "wh%";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
for(int i=0; i < dr.FieldCount; i++)
Response.Write(dr[i].ToString() + "<BR>");
}
dr.Close();
conn.Close();

}
</script>

SQL Statement:
<code><BR>
create proc GetAuthorByName
@name varchar(10)
as
select * from authors where au_lname like @name
</code>
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2003-07-21 03:15
社区公告

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

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