日期:2014-05-18  浏览次数:21179 次

怎么判断TextBox控件的内容是否包含字符串?
在C#的textbox这个控件。这个控件作为价钱来输入,因为数据库的列名是money类型的所以不能有字符串,只能是int或double类型。怎么判断他输入的是不是字符串。如果是字符串则报错提示。
我需要一定的代码。我还是新手一个。。。

求助。求助!!

------解决方案--------------------
C# code

code binge

Regex =new Regex([^\d]];
if Regex.Macth  ture  

insert samecode here

end if


end code

------解决方案--------------------
用正则表达式判断,必须是数值才合法
------解决方案--------------------
int money;
if(double.TryParse(textbox.Text,out money))
//合法
else
//不合法

------解决方案--------------------
1楼的正则并不准确
应该用Regex reg=new Regex(@"\d+(\.\d+)?");

不过我还是建议你用3楼的方法
------解决方案--------------------
如果频繁使用这个逻辑,而且需要很好的代码体现,可以考虑扩展方法或属性

扩展后的使用Demo:

 bool xxx= this.textbox.输入的money类型数据的合法性;

扩展方法或属性:查阅MSDN,应该是3.0里引入的特性
------解决方案--------------------
Regex.IsMatch(textBox1.Text, @"-?(\d+)(.\d+)?");
------解决方案--------------------
一般情况下 如果不用自带的函数的话 我喜欢自己写一个判断的方法
下面这个就是我按照你的情况来写的
C# code

public int isMoney(string str) {
            //由于money里面可能存在小数点 所以还得判断 “点”
            if (str[0] == '.') {//若第一个就是小数点 直接返回
                return -1;
            }
            bool isReturn = true;//用于判断字符串里面能有一个点
            for (int i = 1; i < str.Length; i++) {//这个字符进行比较
                 //若这个字符不在0到9之间 判断一下他是否为“点”
                if (str[i] < Convert.ToChar('0') || str[i] > Convert.ToChar('9')) {
                    if (str[i] == '.' && isReturn) {
                        isReturn = false;//如果是“点”则关闭下一次的判断 因为没见过有两个小数点的数
                    } else {
                        return 0;//否则直接返回
                    }
                }
            }
            return 1; //循环做完了都还没有发现不符合规定的 则表示有效数据
        }