• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
皇图霸业谈笑间
更高、更快、更强
博客园    首页    新随笔    联系   管理    订阅  订阅
今日杂侃【09-02-12】

侃侃今天办公的一些遇到的话题吧,随心记录 。。。

首先是碰到一个“号称MySQL之BUG”的灵异事件,当MySQL数据表中当字段类型设置成【tinyint(1)】类型的时候,如果你用C#的DataSet对象读取表中信息,如代码:

 

        public static DataSet GetRecommendDataSource(int platForm, Pagination pagination, ref XMLMessage msg)
        {
            
int PageIndex = pagination.PageIndex > 0 ? pagination.PageIndex : 1;
            
int StartIndex = pagination.PageIndex * pagination.PageSize - pagination.PageSize;
            
string sql = string.Format(@"SELECT D.* FROM (SELECT A.f_id as id,A.f_name as name,1 as type,A.f_summary as descript,A.f_fwversion as version,A.f_imgsrc as postersUrl,
                                                A.f_intro as startCount,B.c_id as cid,B.c_name as cname,A.f_size as size,A.f_author as author,A.f_admin as admin,A.f_format as installType,A.f_downnum as downloads,A.f_downurl as downloadUrl 
                                                FROM ssssss_files A,sssss_category B WHERE A.f_cateid=B.c_id ORDER BY A.f_intro DESC limit {0}) as D limit {1},{2}
", pagination.RecordNum, StartIndex, pagination.PageSize);
            
try
            {
                
return DBHelper.ExecuteDataset(CommandType.Text, sql, null);
            }
            
catch (Exception se)
            {
                Log.Write(EventLevelCode.Error, se, 
string.Format("返回资源数据集异常,SQL语句:{0}", sql));
                msg 
= new XMLMessage(MessageType.SQLError);
                msg.ErrorList.Add(se.Message);
            }
            
return null;
        }

 

 

这里假设我们的【f_intro】字段就设置为tinyint(1),那么通过DataSet方式读取后,你再将该字段展示的时候,你会发现结果为“true”或者"false"

那么如果避免这样的情况发生呢,思路就是将其用其他类型方式输出:

SQL语句改进 :

 

            string sql = string.Format(@"SELECT D.* FROM (SELECT A.f_id as id,A.f_name as name,1 as type,A.f_summary as descript,A.f_fwversion as version,A.f_imgsrc as postersUrl,
                                                A.f_intro+0 as startCount,B.c_id as cid,B.c_name as cname,A.f_size as size,A.f_author as author,A.f_admin as admin,A.f_format as installType,A.f_downnum as downloads,A.f_downurl as downloadUrl 
                                                FROM sjd_s60_files A,sjd_s60_category B WHERE A.f_cateid=B.c_id ORDER BY A.f_intro DESC limit {0}) as D limit {1},{2}
", pagination.RecordNum, StartIndex, pagination.PageSize);

 

 

这里我们将字段【f_intro】进行了一次加法运算,在看看DataSet中该字段的展示结果:正常显示 。

 

好了,这个问题解决了,接下来就闲聊起项目来,其中一个同学在这边比手划脚,谈天论地,不过他讲的一些东西我倒是蛮有感触的。于是整理了一下:

我觉得人活着吧,眼睛一睁一闭,就没了。所以吧人不能白活这一趟,我们有活得有意思有理想,

所以吧,我们在写程序的时候首先应该了解【项目部署】这个大学问,在期间我们要关注的东西比较多,比较将来项目的部署环境可能是怎样,我们现在应该用怎样的开发模式,应该用怎样的开发技术,才能应对将来项目部署环境对我们带来的影响,这里可能真的要考虑很多东西,真的,【项目部署】也是一门大学问 。。。(要关注)

 

还有一个同学提到一个所谓的【原子方法】

 

。。。。。。

 

 

posted on 2009-02-12 18:27  布颜书  阅读(125)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3