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)
/// <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();