SQL datareader进入int

And*_*lay -1 c# sql

我只是试图使用datareader将datareader [0]中的整数读入一个名为"每晚价格"的整数.

int price_per_night = 0;
while (read_price.Read())
{
    price_per_night = (read_price[0]);
}
Run Code Online (Sandbox Code Playgroud)

无论我尝试多少种方法,它都不会转换.有明确的答案吗?

Wil*_*ras 6

您可以在阅读器上使用GetInt32方法,并在调用此方法之前调用IsDBNull来检查空值.

在GetInt32上记住以下内容:

没有进行转换; 因此,检索的数据必须已经是32位有符号整数.

int price_per_night = 0;
while (read_price.Read())
{
    if (!read_price.IsDBNull(0))
    {
       price_per_night = read_price.GetInt32(0);
    }
}
Run Code Online (Sandbox Code Playgroud)


Saj*_*ran 5

那这个呢?

price_per_night = Convert.ToInt32(read_price[0]);
Run Code Online (Sandbox Code Playgroud)