结果出来了,但是想看看大家有么有更好的办法。。
StringBuilder sbSql = new StringBuilder();
sbSql.Append(@"insert into vw_member_info_web 
                (
                    MEM_NAME,
                    PASSWORD,
                    SEX,
                    MOBILE,
                    LIC_TYPE_ID,
                    LIC_NO,HOME_PHONE,
                    MAIL,
                    ZIP,
                    DETAIL_ADDR,
                    DVR_LIC_NO,
                    REG_MODE,
                    RECOMMEND_NAME,
                    KNOW_MODE_DESC,
                    CRE_USER,
                    CRE_USER_ID");if (!string.IsNullOrEmpty(getDrivLiceDay)) 
{
    sbSql.Append(",DVR_LIC_BGN_DATE");
}if (!string.IsNullOrEmpty(birthday)) 
{
    sbSql.Append(",BIRTHDAY");
}sbSql.Append(@") 
                values 
                (
                    :userName,
                    :pwd,
                    :sex,
                    :mobile,
                    :cretType,
                    :cretNo,:fixedPhone,
                    :mail,
                    :postCode,
                    :address,
                    :dvrLicNo,
                    :reg_mode,
                    :recomName,
                    :knowDesc,
                    :cre_user,
                    :cre_user_id");if (!string.IsNullOrEmpty(getDrivLiceDay))
{
    sbSql.Append(",:dvrLicDate");
}if (!string.IsNullOrEmpty(birthday))
{
    sbSql.Append(",:birthday");
}sbSql.Append(")");
OracleParameter[] prams = { 
                            new OracleParameter(":userName", userName), 
                            new OracleParameter(":pwd", pwd), 
                            new OracleParameter(":sex", sex), 
                            new OracleParameter(":mobile", mobileNo), 
                            new OracleParameter(":cretType", GetLicType(cretType)), 
                            new OracleParameter(":cretNo", cretNo),                                            
                            new OracleParameter(":fixedPhone", fixedPhone), 
                            new OracleParameter(":mail", email), 
                            new OracleParameter(":postCode", postCode), 
                            new OracleParameter(":address", contactAdd), 
                            new OracleParameter(":dvrLicNo", drivLicense),                                              
                            new OracleParameter(":recomName", referee), 
                            new OracleParameter(":knowDesc", couponCode), 
                            new OracleParameter(":reg_mode", "网站注册"),
                            new OracleParameter(":cre_user","网站"),
                            new OracleParameter(":cre_user_id","134")
                          };
当一个注册页面填写的信息比较多,并且不确定的因素也比比较时时,该如何很好的拼接参数化的SQL语句???例如上面的例子中,为了拼接一个"DVR_LIC_BGN_DATE"字段,里面用到了两次判断,当然这不是最难受的,最难受的是下面的参数,因为参数是一个数组,有的字段需要根据用户填没有填写来判断是否需要该参数!!!
求解,谢谢啦!!!