日期:2014-05-18  浏览次数:20432 次

问高手们奇怪的问题!!!关于存储过程的
我建了个存储过程如下:

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的底层处理
------解决方案-----------------