- cloud123
-
有多种方式,
第一种,(int)string,这种最弱,就是C#语言本身的强制类型转罢了
第二种,int.Parse(string),这种呢,string必须是数字串,如果含有字母等,就会报错,还有,如果string为空,编译时不会报错,到了运行时,就可能报错。
第二种,最安全的,Convert.toInt32(string),这种是.net提供的方法,最安全,最强的转换,但执行效率也最低。
wqe变量,必须是数字的字串,你那个应该是sql语句,一个长长的字符串,包含字母、空格,什么都有,当然无法转换。
请你说一下,你的具体意图,为什么要将它转成数字呢?
- 可乐
-
你用的方法虽然对,但很显然你需要转换的字符串格式不对.
如果是
string num="55";
int n=int.Parse(num);
肯定能转化成功的,因为字符串本身就是数字.
但是string num="aaaa";int n=int.Parse(num);
aaaa能转化成什么数字呢?有点强人所难的意思了吧.
另外如果
char c="a";
int n=(int)c;
则n为a的ASC码值,也就是97.
------------------------------------------------------------
只要将SQL语句执行就OK了,代码如下:
using System.Data.SqlClient;
private int GetNum()
{
string wqe="select sum (数量)-"+int.Parse(TB.Text.Trim())+" as result from 表1 where 代号=""+TB1.Text +""";
SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=sa;database=你的数据库名");
SqlDataAdapter da=new SqlDataAdapter(wqe,conn);
DataSet ds=new DataSet();
da.Fill(ds);
return int.Parse(ds.Tables[0].Rows[0][0].ToString());
}
然后判断的时候
if(GetNum()<0)
{...}
else
{...}
- 牛云
-
参考方法如下:
int intA = 0;
1.intA =int.Parse(str);
2.int.TryParse(str, out intA);
3.intA = Convert.ToInt32(str);
以上都可以,其中 1和3 需要try{}异常,2不需要。
TryParse() Usage1:
int number;
bool result = Int32.TryParse(value, out number); // return bool value hint y/n
if (result)
{
//TODO
}
else
{
// TODO
}
//TryParse Usage2:
int start, end;
int.TryParse(minTimeTxt.Text, out start);
int.TryParse(maxTimeTxt.Text, out end);
// Parse Usage
try
{
start = int.Parse(minTimeTxt.Text);
end = int.Parse(maxTimeTxt.Text);
}
catch (Exception e)
{
throw e;
}
int -> string : ToString()
eg:
int x = 13;
x.ToString();
- 苏州马小云
-
wqe是一个字符串变量 他的值是一个SQL语句 想把一个SQL语句转化成整形数字.... 楼主你太有才了.....
你的wqe只是一个SQL语句 我想你要的是执行这句之后的结果 你不执行你直接转化SQL语句能转化出来个啥啊!!!
把这句执行下 接受返回值再把返回值转化就行了
- LocCloud
-
int num = 0;
if(int.TryParse(TB.Text.Trim(),ref num))
{
//转化失败
num = 0;//你可以随便设置一个代表转化失败的值
}
还有:
inti=Convert.ToInt32(wqe);//输入字符串的格式不正确。
if(i<0)
{
}
这里实在是...wqe是一个string类型的SQL语句,要去数据库查询后才能获取值的. 你这样转化肯定是失败的.
- tt白
-
string wqe="select sum (数量)-"+int.Parse(TB.Text.Trim())+" as result from 表1 where 代号=""+TB1.Text +""";
这里是一个常常的字符串,要想得到数值串,还需要打开数据库执行才对。
inti=Convert.ToInt32(wqe);
这里的转化没有错,错在你的字符串没有去访问数据库而直接转化。乱七八糟的啥都有,不出错才怪。
- 瑞瑞爱吃桃
-
string wqe="select sum (数量)-"+int.Parse(TB.Text.Trim())+" as result from 表1 where 代号=""+TB1.Text +""";
这个你要在数据库中给运行一下才能取出数字呢
- ardim
-
带字符的string是无法转换成Int的,
要转也是转换成ASC码的值;呵呵
- FinCloud
-
有点无语了,直接把select放在里面应该查不到什么东西的吧....整个wqe就是个字符串..建议楼主先去找找有关数据库连接的资料来look look...