gpt4 book ai didi

c# - 获取错误返回,SQL - 如果

转载 作者:太空宇宙 更新时间:2023-11-03 22:10:50 25 4
gpt4 key购买 nike

我有下一个方法:

    private bool bla()
{

int Minbuy, ordersTillNow;
{
SqlConnection connection = new SqlConnection("Data Source=****;Initial Catalog=****;User ID=****;Password=****;Integrated Security=False;");
string commandtext = "SELECT Minbuy FROM items WHERE main = 1";
string commandtext2 = "SELECT ordersTillNow FROM items WHERE main = 1";

SqlCommand command = new SqlCommand(commandtext, connection);
SqlCommand command2 = new SqlCommand(commandtext2, connection);

connection.Open();

Minbuy = (int)command.ExecuteScalar();
ordersTillNow = (int)command2.ExecuteScalar();

if (Minbuy < ordersTillNow)
return true;
else
return false;

}



}

以及page_load方法的使用:

        if (bla())
{
Image_V.Visible = true;
}
else
{
Image_X.Visible = true;
}

SQL 中查询结果的值是:

MinBuy = 5

ordersTillNow = 1

奇怪的是——不管数据库中的值是多少(我已经将值更改为:MinBuy = 1 和 ordersTillNow = 8)——它显示 image_v 。 (在 aspx 页面上 - 两个图像 visble 都设置为 false)。

代码有什么问题?

表格设计:

表名:items

列:itemId(int) , main (bit) , MinBuy (int) , ordersTillNow(int) 。

最佳答案

我认为问题可能在于上述 SQL 的结果可能返回多于 1 行。因此,它会给出错误的结果。

尝试将代码更改为:

string commandtext = "SELECT TOP 1 Minbuy FROM items WHERE main = 1";
string commandtext2 = "SELECT TOP 1 ordersTillNow FROM items WHERE main = 1";

您可以使用一个选择而不是 2 个选择

string queryString = "SELECT Minbuy, ordersTillsNow FROM items WHERE main = 1";
using (SqlConnection connection = new SqlConnection(
connectionString))
{
connection.Open();

SqlCommand command = new SqlCommand(queryString, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
MinBuy = int.Parse(reader[0].ToString());
ordersTillsNow = int.Parse(reader[1].ToString());
//Console.WriteLine(String.Format("{0}", reader[0]));
}
}

关于c# - 获取错误返回,SQL - 如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6724107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com