c ++ / cli中atoi的问题

时间:2016-03-29 17:43:28

标签: arrays c++-cli

ORIG_HEAD

这条线有什么问题?错误是:' atoi' :无法从' System :: String ^'转换参数1 to' const char *'

select pm2.*, product.name 
  from productmapping pm1 
  join productmapping pm2
         on pm2.keyid = pm1.keyid 
        and pm1.productid in (1) 
  join product 
         on product.id = pm2.productid


declare @product table(id int, name varchar(20));
declare @map table(productid int, keyid int);
insert into @product values 
(1, 'car'),
(2, 'bike'),
(3, 'plane'),
(4, 'bus'),
(5, 'train'),
(45, 'cycle');
insert into @map values 
(1, '23'),
(2, '987'),
(45, '23'),
(1, '56');
select pm2.*, p.name 
  from @map pm1 
  join @map pm2
         on pm2.keyid = pm1.keyid 
        and pm1.productid in (1) 
  join @product p 
         on p.id = pm2.productid
order by pm2.keyid;

1 个答案:

答案 0 :(得分:2)

如果您正在编写.Net代码,编写.Net代码。一般情况下,当有可用的.Net方法时,不要乱用C ++的做事方式。

有几种方法可以将.Net String^转换为整数。 Int32::TryParse可能是最适合使用的。

旁注:如果您只是学习C ++,我建议您学习普通的C ++,或者学习像C#这样的完全托管的语言。 C ++ / CLI旨在实现互操作性,而不是主要开发;它具有C ++的所有复杂性,C#的所有复杂性以及它自己的一些复杂性。