【网上代码以讹传讹系列】

1.windows下mysql的表名大小写区分 :

一搜差不多都是

打开my.ini

[mysqld]
lower_case_table_names=0

但是这么已设置,mysql服务都启动不起来。mysql版本5.7.19。

但设置成lower_case_table_names=2就没问题了,表名区分了大小写。

lower_case_table_names=0应该是Linux下的设置方式吧?具体我也没时间去实验了。

2.话说离开百度,某些人就不会写代码了。也难怪,现在要求开发速度高,哪还有那么多人去潜心学习基础知识。但很多网上的代码是有问题的,也许各位也都在实际测试中发现了,我就举个例子。

就拿C#的DataTable对象转List<>集合的代码,网上一搜千篇一律,注释都没变:

public static List<T> ToList<T>(this DataTable dt) where T : class, new()  
    {  
        //创建一个属性的列表    
        List<PropertyInfo> prlist = new List<PropertyInfo>();  
        //获取TResult的类型实例  反射的入口    
  
        Type t = typeof(T);  
  
        //获得TResult 的所有的Public 属性 并找出TResult属性和DataTable的列名称相同的属性(PropertyInfo) 并加入到属性列表     
        Array.ForEach<PropertyInfo>(t.GetProperties(), p => { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });  
  
        //创建返回的集合    
  
        List<T> oblist = new List<T>();  
  
        foreach (DataRow row in dt.Rows)  
        {  
            //创建TResult的实例    
            T ob = new T();  
            //找到对应的数据  并赋值    
            prlist.ForEach(p => { if (row[p.Name] != DBNull.Value) p.SetValue(ob, row[p.Name], null); });  
            //放入到返回的集合中.    
            oblist.Add(ob);  
        }  
        return oblist;  
    }

甚至更简单:

public static IList<T> ConvertToModel(DataTable dt)
        {

            IList<T> ts = new List<T>();// 定义集合
            Type type = typeof(T); // 获得此模型的类型
            string tempName = "";
            foreach (DataRow dr in dt.Rows)
            {
                T t = new T(); 
                PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性
                foreach (PropertyInfo pi in propertys)
                {
                    tempName = pi.Name;
                    if (dt.Columns.Contains(tempName))
                    {
                        if (!pi.CanWrite) continue;
                        object value = dr[tempName];
                        if (value != DBNull.Value)
                            pi.SetValue(t, value, null);
                    }
                }
                ts.Add(t);
            }
            return ts;
        }

他们最大的问题,就是忽略了datetime类型的处理。因为windows操作系统日期格式设置的差异,导致日期时间格式的强制转换会有问题,有时碰巧会转换成功,但有时转换结果就是0001-00-00,

这是第一段代码稍作修改后的,处理比较简单,仅供参考:

                prlist.ForEach(p => {
                    if (row[p.Name] != DBNull.Value) p.SetValue(ob, row[p.Name], null);//如果是日期时间类型,不能这么草率的赋值!网络上的代码漏洞很多! 
                    //日期时间类型的处理 
                    try
                    {
                        if (p.PropertyType == typeof(DateTime) || p.PropertyType == typeof(DateTime?))
                        {
                            DateTime _dt;
                            try
                            {
                                _dt = DateTime.FromOADate(double.Parse(row[p.Name].ToString()));
                            }
                            catch
                            {
                                _dt = Convert.ToDateTime(row[p.Name].ToString());
                            }

                            p.SetValue(ob, _dt, null);
                        }
                    }
                    catch { }

                });

 再啰嗦一句,什么年代了,为毛还要用DataTable这种对象?弱类型的集合现在很多场合下用起来都很费劲,少不了各种判断和转换。某些喜欢用dataTable的人,不是因为DataTable好用,而是他不会用别的,见过一个大哥,不把集合转成dataTable都不会绑数据源,还能说什么呢?

转载于:https://www.cnblogs.com/mylogic/p/8108822.html

<think>好的,用户想了解成语“道听途说”的含义。首先需要确认这个成语的正确写法,有时候可能会有错别字,比如“途”和“涂”之类的,但根据常见用法,应该是“道听途说”。接下来要查它的出处,我记得这个成语可能来自古代文献,比如《论语》或者其他经典,需要确认具体来源。然后,要解释它的基本意思,通常是指没有根据的传闻,或者在路上听到然后传播出去的消息。还要区分它的用法,比如是贬义词还是中性词,适用的语境是什么。另外,可能需要举例子说明,比如在什么情况下使用这个成语,帮助用户更好地理解。还要注意近义词和反义词,比如和“捕风捉影”、“有据可查”之类的对比。需要确保解释详细但不过于复杂,适合不同层次的读者。最后,按照用户的要求,生成相关问题,这些问题应该围绕成语的来源、用法、例子,以及如何避免道听途说等。同时要检查格式是否符合要求,比如分点、换行,不出现第一人称,不使用步骤词汇,正确引用搜索内容但分散在回答中。现在需要调用搜索工具查找相关信息,确保信息的准确性,比如确认出处是否为《论语·阳货》,解释是否准确,例子是否恰当。然后整合这些信息,按照用户的结构要求组织答案,确保每个部分清晰,方法或步骤分开,换行处理。最后添加相关问题部分,三个问题要相关且基于回答内容,格式正确。</think>“道听途说”指未经证实的消息通过非正式途径传播的行为,通常带有贬义色彩。该成语强调信息传播过程中缺乏验证环节,容易导致以讹传讹的现象。 **核心含义解析** - **字面构成**:由"道路听闻"与"途中传播"两部分组成,形象描述信息在移动路径中的非正规传递方式 - **引申意义**:现多用于批评那些不核实信息真伪就随意传播的行为 - **典故溯源**:最早见于《论语·阳货》"道听而涂说,德之弃也",原指违背道德准则的言行 **使用场景辨析** 适用于学术研究、新闻报道、日常交流等需要信息准确性的领域,常见于提醒注意信息核查的语境。与"捕风捉影"相比,更侧重传播过程而非信息本身真伪;与"三人成虎"相较,不强调传播结果危害性。 **现代应用示例** ```python # 信息可信度验证模型中的过滤条件设置示例 if not verify_source(report): print("该内容属于道听途说,请核查信源") elif credibility_score < 0.5: print("存在道听途说风险,建议补充佐证材料") ``` **信息验证公式** $$ C = \frac{V_s \times R_p}{D_t} $$ 其中$C$代表信息可信度,$V_s$为信源验证值,$R_p$为传播路径可靠性,$D_t$为时间衰减因子。当$C < 1$时可判定为道听途说。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值