.NET中LIKE语句

来源:互联网 发布:淘宝手机删除差评链接 编辑:程序博客网 时间:2024/04/28 04:32

错误:

string query = @"SELECT  gx.GXBM ,

                                    gx.MC ,
                                    gx.QDZC ,
                                    gx.ZDZC ,
                                    gx.GJ ,
                                    gx.BH ,
                                    gx.ZJJ ,
                                    gx.ZJGR ,
                                    gx.ZDYXYL ,
                                    gx.ZXYXYL
                            FROM    dbo.ATB_GXJBXX gx

                            WHERE   @MC is NULL OR gx.MC LIKE '%@MC%'";

正确:

string query = @"SELECT  gx.GXBM ,

                                    gx.MC ,
                                    gx.QDZC ,
                                    gx.ZDZC ,
                                    gx.GJ ,
                                    gx.BH ,
                                    gx.ZJJ ,
                                    gx.ZJGR ,
                                    gx.ZDYXYL ,
                                    gx.ZXYXYL
                            FROM    dbo.ATB_GXJBXX gx
                            WHERE   @MC is NULL OR gx.MC LIKE '%'+@MC+'%'";
分析:错误写法导致参数无法识别.
SQL Profilter对比:
错误:
exec sp_executesql N'SELECT  gx.GXBM ,
                                    gx.MC ,
                                    gx.QDZC ,
                                    gx.ZDZC ,
                                    gx.GJ ,
                                    gx.BH ,
                                    gx.ZJJ ,
                                    gx.ZJGR ,
                                    gx.ZDYXYL ,
                                    gx.ZXYXYL
                            FROM    dbo.ATB_GXJBXX gx
                            WHERE   @MC is NULL OR gx.MC LIKE ''%@MC%''',N'@MC nvarchar(1)',@MC=N'石'
正确:

exec sp_executesql N'SELECT  gx.GXBM ,
                                    gx.MC ,
                                    gx.QDZC ,
                                    gx.ZDZC ,
                                    gx.GJ ,
                                    gx.BH ,
                                    gx.ZJJ ,
                                    gx.ZJGR ,
                                    gx.ZDYXYL ,
                                    gx.ZXYXYL
                            FROM    dbo.ATB_GXJBXX gx
                            WHERE   @MC is NULL OR gx.MC LIKE ''%''+@MC+''%''',N'@MC nvarchar(1)',@MC=N'石'

原创粉丝点击