从数据类型varchar转换为real时出错

       前一段时间在维护组织委项目,丁组长说给分配一个“简单”的任务。 组织委县市区成绩管理模块报黄页:从数据类型varchar转换为real时出错。看起来这个问题挺好解决的吧,其实也不难关键是找到问题的关键。通过逐步调试,在县市区成绩管理页面查看详情时发现得分一栏显示:

从数据类型varchar转换为real时出错_第1张图片

从数据类型varchar转换为real时出错_第2张图片

       查看数据库发现得分的字段为varchar类型, 存放的数据类型与数据库中的类型不一致一般都会报错。该如何解决这个问题,这里我们主要讨论一下c# 判断字符串是否包含汉字?开始的时候有这样的一个想法:判断是否为数字,为数字才能存入数据库否则给它赋值。用了一个正则表达式如下:

			Regex reg = new Regex("^[0-9]+$");
                        Match ma = reg.Match(strScores);
                        if (ma.Success)
                        {
                            //是数字  
                            //获取得分
                            cityCharacterizationScoresEntity.CalculateScores = strScores;
                        }
                        else
                        {
                            //不是数字 
                            cityCharacterizationScoresEntity.CalculateScores = "0";
                        }

    但这个方法有缺陷当数字有小数点时就不能判断即有小数字当成不是数字,既然是有汉字导致的类型转换出错,那何不判断字符串是否包含汉字呢。c# 判断字符串是否包含汉字?我用的方法如下:

	#region +加循环判断strScores是否包含汉字,因为如果包含汉字在计算时报错 黎卓玲-2015年12月5日
                        //获取得分(先将strScores赋给CalculateScores
                        cityCharacterizationScoresEntity.CalculateScores = strScores;
                        //再判断strScores是否包含汉字
                        for (int j = 0; j < strScores.Length; j++)
                        {
                            if ((int)strScores[j] > 127)//strScores包含汉字,127
                            {
                                //如果strScores包含汉字则将0赋值给它
                                cityCharacterizationScoresEntity.CalculateScores = "0";
                                break;//并跳出循环
                            }
                        }
	#endregion

     在解决程序问题时有一点咱们可以明确的是错误是一层层外抛的,办法总比困难多。


你可能感兴趣的:(【成长之旅】,------<小桥流水>)