当前位置:编程学习 > C#/ASP.NET >>

string类型怎样转换为int类型

 string username = TextBox1.Text.ToString().Trim();
        string userpwd = TextBox2.Text.ToString().Trim();
        string realname = TextBox3.Text.ToString().Trim();
        string number = TextBox4.Text.ToString().Trim();
        string inclass = TextBox5.Text.ToString().Trim();
        int usertype = TextBox6.Text;
        string sql = "insert into users(username,pwd,realname,number,class,usertype) values('" + username + "','" + userpwd + "','" + realname + "','" + number + "','" + inclass + "',1)";
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["second"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand(sql, con);
        SqlDataReader red = cmd.ExecuteReader();
        con.Close();
 第6行出错,说无法将string类型转换为int类型。寻求各位高手帮忙 --------------------编程问答-------------------- int usertype = int.Parse(TextBox6.Text);

最好加try catch --------------------编程问答-------------------- int usertype = Convert.ToInt32(TextBox6.Text); --------------------编程问答-------------------- 其实你这里不用定义成int的,直接就string就可以在sql中使用

string usertype = TextBox6.Text;
  string sql = "insert into users(username,pwd,realname,number,class,usertype) values('" + username + "','" + userpwd + "','" + realname + "','" + number + "','" + inclass + "',"+usertype+")";

try 
--------------------编程问答--------------------
引用 3 楼 criedshy 的回复:
其实你这里不用定义成int的,直接就string就可以在sql中使用

string usertype = TextBox6.Text;
  string sql = "insert into users(username,pwd,realname,number,class,usertype) values('" + username + "','" + userpwd + "','" + ……


--------------------编程问答-------------------- int usertype = int.Parse(TextBox6.Text.ToString());
int usertype = Convert.ToInt32(TextBox6.Text.ToString());
这两种都可以 --------------------编程问答--------------------
引用 5 楼 skyqingtian 的回复:
int usertype = int.Parse(TextBox6.Text.ToString());
int usertype = Convert.ToInt32(TextBox6.Text.ToString());
这两种都可以


来晚了. 这送分的哇 --------------------编程问答-------------------- 最好在前台使用正则验证一下比较好 --------------------编程问答-------------------- 验证一下文件是否为有效数字 --------------------编程问答--------------------
引用 3 楼 criedshy 的回复:
其实你这里不用定义成int的,直接就string就可以在sql中使用

string usertype = TextBox6.Text;
  string sql = "insert into users(username,pwd,realname,number,class,usertype) values('" + username + "','" + userpwd + "','" + ……

--------------------编程问答--------------------
引用 5 楼 skyqingtian 的回复:
int usertype = int.Parse(TextBox6.Text.ToString());
int usertype = Convert.ToInt32(TextBox6.Text.ToString());
这两种都可以


同意 --------------------编程问答-------------------- int usertype = Convert.ToInt32(TextBox6.Text); --------------------编程问答-------------------- int usertype = int.Parse(TextBox6.Text);
int usertype = int.Parse(TextBox6.Text.ToString());
int usertype = Convert.ToInt32(TextBox6.Text.ToString());
   这几种都可以 --------------------编程问答--------------------
if(string.IsNullOrEmpty(TextBox6.Text))
  int usertype = Convert.ToInt32(TextBox6.Text);
--------------------编程问答--------------------

验证下是否是有效的数字  否则回报错的
Convert.ToInt32();
int.Parse();
都可以
--------------------编程问答--------------------
Int32.TryParse();

直接拼接sql语句会产生潜在的sql注入漏洞的吧 --------------------编程问答--------------------
引用 15 楼 yingyuebingya 的回复:
Int32.TryParse();

直接拼接sql语句会产生潜在的sql注入漏洞的吧

同意这个... --------------------编程问答-------------------- int usertype = int.Parse(TextBox6.Text.ToString());
这个前提是转换的必须是string类型的 --------------------编程问答-------------------- int usertype=0
int.TryParse( TextBox6.Text,out usertype);
--------------------编程问答-------------------- int.TryParse( TextBox6.Text,out usertype);
or
convert。toint32(string s) --------------------编程问答-------------------- int.parse(TextBox1.text) --------------------编程问答-------------------- int usertype = int.Parse(TextBox6.Text.ToString());
比较好,效率较搞,随时清除的堆栈

int usertype = Convert.ToInt32(TextBox6.Text.ToString());

这个能实现同样的效果,但是相对前者效率偏低 --------------------编程问答--------------------
引用 3 楼 criedshy 的回复:
其实你这里不用定义成int的,直接就string就可以在sql中使用

string usertype = TextBox6.Text;
  string sql = "insert into users(username,pwd,realname,number,class,usertype) values('" + username + "','" + userpwd + "','" + ……

这个就行啦。。。。。。。。。。。。。 --------------------编程问答-------------------- 这个绝对不会报错的:
int usertype;
int.TryParse(TextBox6.Text,out usertype);
TextBox6.Text 转换成数字不成功的话 ,usertype会等于0,然后想对usertype进行一些判断也可以的 --------------------编程问答-------------------- int usertype;
int.TryParse(String,out usertype);
int usertype=convert.toint16(string)
int usertype=int.parse(string); --------------------编程问答--------------------
引用 11 楼 youthkin 的回复:
int usertype = Convert.ToInt32(TextBox6.Text);

   正解!!!!! --------------------编程问答-------------------- int.TryParse(TextBox6.Text,out usertype);
--------------------编程问答-------------------- 可怜的娃! --------------------编程问答-------------------- int usertype = int.Parse(TextBox6.Text);

最好加try catch --------------------编程问答-------------------- Convert函数,可以在数据类型中互相转换
Convert.tostring;
Convert.toint32;
Convert.toboolean;
........ --------------------编程问答-------------------- int usertype = Convert.Int32(TextBox6.Text);
杭州卫星电视安装 www.hzyatong.cn
环氧地坪 www.hzguangsheng.cn
宁波阜康电气有限公司 www.fkdqchina.com
幸福第一站杭州摄影工作室 www.xfdyz.com
滨江酒店 www.xs365.com --------------------编程问答--------------------
引用 23 楼 tanghewu 的回复:
这个绝对不会报错的:
int usertype;
int.TryParse(TextBox6.Text,out usertype);
TextBox6.Text 转换成数字不成功的话 ,usertype会等于0,然后想对usertype进行一些判断也可以的


这样就没有错了。。。 --------------------编程问答-------------------- ding ~ --------------------编程问答--------------------
引用 18 楼 wuyq11 的回复:
int usertype=0
int.TryParse( TextBox6.Text,out usertype);


引用 21 楼 xiezhongjun 的回复:
int usertype = int.Parse(TextBox6.Text.ToString());
比较好,效率较搞,随时清除的堆栈

int usertype = Convert.ToInt32(TextBox6.Text.ToString());

这个能实现同样的效果,但是相对前者效率偏低
--------------------编程问答--------------------
int usertype = int.Parse(TextBox6.Text.ToString());
int usertype = Convert.ToInt32(TextBox6.Text.ToString());
这两种都可以,最好是加上非空验证 --------------------编程问答-------------------- int usertype = Convert.ToInt32(TextBox6.Text); --------------------编程问答--------------------
引用 34 楼 caiyang910423 的回复:
int usertype = int.Parse(TextBox6.Text.ToString());
int usertype = Convert.ToInt32(TextBox6.Text.ToString());
这两种都可以,最好是加上非空验证

jf --------------------编程问答-------------------- Convert.ToInt32(); --------------------编程问答--------------------
引用 34 楼 caiyang910423 的回复:
int usertype = int.Parse(TextBox6.Text.ToString());
int usertype = Convert.ToInt32(TextBox6.Text.ToString());
这两种都可以,最好是加上非空验证

顶 --------------------编程问答-------------------- --------------------编程问答--------------------             try
            {
                int intTemp;
                intTemp = int.Parse(TextBox6.Text);
                int.TryParse(TextBox6.Text, out intTemp);
                intTemp = Convert.ToInt32(TextBox6.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            } --------------------编程问答--------------------

try
  {
  int intTemp;
  intTemp = int.Parse(TextBox6.Text);
  int.TryParse(TextBox6.Text, out intTemp);
  intTemp = Convert.ToInt32(TextBox6.Text);
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message);
  }


加个框框 貌似看的清楚些。。。。 --------------------编程问答--------------------             int.TryParse
--------------------编程问答-------------------- 假如你输入的是205.2 当然这是个字符串,你强转int 也会报错。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,