日期:2014-05-20  浏览次数:23679 次

Int32 太大或太小
我在文本框输出的是:201010414509
这是出错代码:
        DataClasses2DataContext data = new DataClasses2DataContext();
        NewsInfo N = new NewsInfo();
        N.新闻主题 = TextBox2.Text;
        N.新闻编号  = Convert.ToInt32(TextBox1.Text.ToString());//这里报错的
        N.发布日期 = TextBox3.Text;
        N.新闻内容 = TextBox4.Text;
        data.NewsInfo.InsertOnSubmit(N);
        data.SubmitChanges();
        Binder();
        Button1.Attributes.Add("onclick", "alert('更新成功');");
        return;
提示的错误是:
异常详细信息: System.OverflowException: 值对于 Int32 太大或太小
如果我把出错那行改为:
 N.新闻编号  = Convert.ToInt64(TextBox1.Text.ToString());
就会提示:无法将lang隐式转化为int,存在一个显示转换
INT32 强制转换 INT64

------解决方案--------------------
整数是有范围的,你对它附值不能超出它的范围
------解决方案--------------------
Int32的范围大约是-2100000000~2100000000,你这个最好用ulong编号。或者用DateTime + 编号,拆开来。
------解决方案--------------------
 N.新闻编号  = Convert.ToInt64(TextBox1.Text.ToString());
 并把新闻编号属性类型改成long型
------解决方案--------------------
直接用string算了!
------解决方案--------------------
这和LINQ木有关系
int i=Convert.ToInt32("201010414509");
你的值已经超出INT的范围了
------解决方案--------------------
改用其他大数据类型比如long,Int64等
------解决方案--------------------
为什么要把文本内容转换成int呢?