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;
答案 0 :(得分:2)
如果您正在编写.Net代码,编写.Net代码。一般情况下,当有可用的.Net方法时,不要乱用C ++的做事方式。
有几种方法可以将.Net String^
转换为整数。 Int32::TryParse
可能是最适合使用的。
旁注:如果您只是学习C ++,我建议您学习普通的C ++,或者学习像C#这样的完全托管的语言。 C ++ / CLI旨在实现互操作性,而不是主要开发;它具有C ++的所有复杂性,C#的所有复杂性以及它自己的一些复杂性。