问高手们奇怪的问题!!!关于存储过程的
我建了个存储过程如下:
CREATE PROCEDURE [select_job]
(
@label1 [varchar](50)
)
AS
set nocount on
SELECT STitle ,replace(c_c_Position,@label1, ' <font color=OrangeRed > '+@label1+ ' </font> ') as c_c_Position
FROM SeekItem
WHERE c_c_Position like '% '+rtrim(ltrim(@label1))+ '% '
GO
意思是要模糊查询@label1,并让@label1高亮显示!
我在sql 2005数据库里执行的时候是好好的,比如我的参数是“销售”, 查询出来的有:“ <font color=red> 销售 </font> 工程师”
存储过程语句没有问题
可是我通过sqlcommand语句执行的时候就出问题了:
con.Open();
SqlCommand comm = new SqlCommand( "select_job ", con);
comm.CommandType = CommandType.StoredProcedure;
SqlParameter[] parms =
{
new SqlParameter( "@label1 ", SqlDbType.Char,50)
new SqlParameter( "@label2 ", SqlDbType.Char,50)
};
parms[0].Value = this.TextBox1.Text;
parms[1].Value = this.TextBox2.Text;
foreach (SqlParameter p in parms)
{
comm.Parameters.Add(p);
}
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
问题出来了,我现在的da里的c_c_Position字段里的”销售“却不高亮显示了
高手们啊 怎么办啊
[解决办法]
不会出现这情况,还是web写错了,你看看那个样式代码出来了码。
[解决办法]
把 <font color=OrangeRed > 和 </font> 写成变量试试?会不会是被过滤了?
[解决办法]
如果是在页面高亮,建议你进行一次将 " < ", "> "html敏感字符转义一下
如果你是想在da中高亮(调试的时候该信息高亮)这个是不可能的除非你了解。net的底层处理
------解决方案--------------------
我很疑惑,存储过程里只有一个参数,而你却加了两个parm,不会有问题吗?
[解决办法]
不懂 帮顶
[解决办法]
' <font color=OrangeRed > '+@label1+ ' </font> '
改成这样:
' <font style= ' 'Color:red ' '> ' + @label1 + ' </font> '
[解决办法]
写错了。是这样的。
' <font style= ' 'Color:OrangeRed ' '> ' + @label1 + ' </font> '