首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

RTrim和LTrim,如何不起作用?SQL小问

2013-08-14 
RTrim和LTrim,怎么不起作用?SQL小问.这是我在SSMS写的临时SQL代码:这是我在存储过程写的,其实和上面的最后

RTrim和LTrim,怎么不起作用?SQL小问.
这是我在SSMS写的临时SQL代码:


这是我在存储过程写的,其实和上面的最后两条一样:
ALTER PROCEDURE USP_GetT_StuffBasicFilterExtraFiledByField--过滤从别的表获得数据的字段值.
@FieldName nvarchar(20),
@FieldVal nvarchar(50)
AS
SET NOCOUNT ON 
declare @query nvarchar(max)
set @query = 'select FId,FStuffName,LTrim(RTrim(FFolk)),FFolk,FBirthday,FAge,LTrim(RTrim(FKultur)),FKultur,FMarriage,
FSex,LTrim(RTrim(FVisage)),FVisage,FIdCard,FWorkDate,FWorkLength,LTrim(RTrim(FEmployeeGenere)),FEmployeeGenere,
LTrim(RTrim(FBusiness)),FBusiness,LTrim(RTrim(FLaborage)),FLaborage,LTrim(RTrim(FBranch)),FBranch,
LTrim(RTrim(FDuthcall)),FDuthcall,FPhone,FHandSet,FSchool,FSpeciality,FGraduateDate,FAddress,FPhoto,
LTrim(RTrim(FProName)),FProName,LTrim(RTrim(FCityName)),FCityName,FMonthSalary,FBankNum,FPackStartDate,
FPackEndDate,FPactYear,FStuId from T_StuffBasic where '+@FieldName+' = '''+@FieldVal+''''
exec(@query)


我将上面的存储过程封装为一个方法,返回DataTable.
C#代码为:
/// <summary>
        /// 指定存储过程名,返回的表名,字段名和对应的值查找结果.
        /// </summary>
        /// <param name="proceName">存储过程名.</param>
        /// <param name="tableName">表名.</param>
        /// <param name="fieldName">字段名.</param>
        /// <param name="fieldVal">字段值.</param>
        /// <returns>返回结果集的DataTable.</returns>
        public static DataTable GetStuffBasicDataTableByProcedure(string proceName, string tableName, string fieldName, string fieldVal) {
            _Set = new DataSet();
            using(SqlConnection connect = new SqlConnection(strConn)) {


                connect.Open();
                using(SqlCommand cmd = connect.CreateCommand()) {
                    cmd.CommandText = proceName;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@FieldName", SqlDbType.NVarChar, 20).Value = fieldName;
                    cmd.Parameters.Add("@FieldVal", SqlDbType.NVarChar, 50).Value = fieldVal;
                    _Adapter = new SqlDataAdapter(cmd);
                    _Adapter.Fill(_Set, tableName);
                    return _Set.Tables[tableName];
                }
            }
        }


当我调用的时候,
DataRow rCurrent = _AcceptTable.Rows[_SelectedIndex];   
string s = rCurrent["FBranch"]
//这里s返回"C#部门    ",也就是说怎么还有空格.何解?


我的代码虽然上了很多,但是问题很简单明了...大家帮忙看看...谢谢了...
[解决办法]
rCurrent["FBranch"].TOSTRING().TRIM();

[解决办法]
想到两个地方,你确认
数据类型如果是char的,改成varchar就好了,否则怎么trim都是定长
.net的trim是包括全角空格的,数据库是怎么trim就不清楚了

热点排行