我在另一篇文章中注意到有人做了类似的事情:
double d = 3.1415;
int i = Convert.ToInt32(Math.Floor(d));
Run Code Online (Sandbox Code Playgroud)
他们为什么使用转换函数,而不是:
double d = 3.1415;
int i = (int)d;
Run Code Online (Sandbox Code Playgroud)
它有一个隐含的底层和转换.
另外,更关注的是,我在一些生产代码中注意到我正在阅读:
double d = 3.1415;
float f = Convert.ToSingle(d);
Run Code Online (Sandbox Code Playgroud)
这是一样的:
float f = (float)d;
Run Code Online (Sandbox Code Playgroud)
是否所有这些隐式转换只是在Convert类中是为了完整性,还是它们是否有用?我可以理解需要.ToString(),但不是其他的.
这是我的SQL:
IF (SELECT Status FROM dbo.Coupon WHERE Guid = @pGuid) = 0
BEGIN
UPDATE
dbo.Coupon
SET
Status = @pStatus
WHERE
Guid = @pGuid
RETURN 0
END
ELSE
RETURN 1;
Run Code Online (Sandbox Code Playgroud)
这是我的C#:
try
{
DbCommand command = db.GetStoredProcCommand("upd_Coupon_p");
db.AddInParameter(command, "@pGuid", DbType.String, s);
db.AddInParameter(command, "@pStatus", DbType.Byte, 1);
ds = db.ExecuteDataSet(command);
}
Run Code Online (Sandbox Code Playgroud)
如何在代码中获得0或1的返回值?
我有一个存储过程返回一个布尔变量:
这是我的C#代码,当我尝试返回一个int变量时工作.但是当我尝试bool时它不起作用.
DbCommand dbCommand = db.GetStoredProcCommand("spGetConfigureAlerts");
object o = db.ExecuteScalar(dbCommand);
bool item = o == null ? 0 : (bool)o;
return item;
Run Code Online (Sandbox Code Playgroud)
我如上所示,但在第三行它说:
Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and 'bool'
Run Code Online (Sandbox Code Playgroud)
我该如何解决?