C#将sql查询结果转换为变量

C#将sql查询结果转换为变量,c#,sql-server,C#,Sql Server,我是C#的新手,所以可能我没把它写好 在我的C#表单中,我将order nr.放入一个表单中。 然后它在sql中检查这个 需要执行此查询: 从订单编号获取订单ID 需要检查订单ID是否在[系统已打开\u订单]=订单已打开 如果订单已打开,则需要在C#Messagebox.Show中运行(“订单已打开,稍后再试”) 如果未打开,则从订单加载数据 SQL查询: C#代码: 您需要从存储过程中的if语句返回一些内容。您可以简单地返回一个值 using (SqlDataReader reader =

我是C#的新手,所以可能我没把它写好

在我的
C#
表单中,我将
order nr.
放入一个表单中。 然后它在
sql
中检查这个

需要执行此查询:

  • 从订单编号获取订单ID

  • 需要检查
    订单ID
    是否在
    [系统已打开\u订单]
    =订单已打开

  • 如果订单已打开,则需要在C#
    Messagebox.Show中运行(“订单已打开,稍后再试”)

  • 如果未打开,则从订单加载数据
  • SQL查询: C#代码:


    您需要从存储过程中的if语句返回一些内容。您可以简单地返回一个值

    using (SqlDataReader reader = command.ExecuteReader())
    {
        if (reader.FieldCount == 1)
            MessageBox.Show("Order open");
        else
        {
            while(reader.Read())
            {
               // String OrderCustommerName = reader.GetString(3).TrimEnd();
               // String OrderCustommerCity= reader.GetString(4).TrimEnd();
               // lbOrderData.Text = OrderCustommerName + " " + OrderCustommerCity;
            }
        }
    }
    
    现在,您可以通过查看DataReader的属性来区分这两个结果之间的差异

    IF EXISTS (SELECT 1 FROM [Agenda].[dbo].[System_Opened_Orders] WHERE Record_ID=@OrderID )
    BEGIN
        -- Order is not openend, get custommer data
        select ID, OrderNumber, CustommerName, CustommerCity
        FROM [Agenda].[dbo].[orders] where OrderNumber = @sqlordernr
    END
    

    您需要从存储过程中的if语句返回一些内容。您可以简单地返回一个值

    using (SqlDataReader reader = command.ExecuteReader())
    {
        if (reader.FieldCount == 1)
            MessageBox.Show("Order open");
        else
        {
            while(reader.Read())
            {
               // String OrderCustommerName = reader.GetString(3).TrimEnd();
               // String OrderCustommerCity= reader.GetString(4).TrimEnd();
               // lbOrderData.Text = OrderCustommerName + " " + OrderCustommerCity;
            }
        }
    }
    
    现在,您可以通过查看DataReader的属性来区分这两个结果之间的差异

    IF EXISTS (SELECT 1 FROM [Agenda].[dbo].[System_Opened_Orders] WHERE Record_ID=@OrderID )
    BEGIN
        -- Order is not openend, get custommer data
        select ID, OrderNumber, CustommerName, CustommerCity
        FROM [Agenda].[dbo].[orders] where OrderNumber = @sqlordernr
    END
    

    如果“订单已打开”,则无需选择任何内容

    然后在代码端;如果datareader中没有行,while.Read()将返回false


    如果“订单已打开”,则无需选择任何内容

    然后在代码端;如果datareader中没有行,while.Read()将返回false


    谢谢,非常简单,但在我的情况下,最好使用
    select 1
    谢谢,非常简单,但在我的情况下,最好使用
    select 1
    答案很好,但如果您愿意,也可以尝试SQL。答案很好,但如果您愿意,也可以尝试SQL。
    IF EXISTS (SELECT 1 FROM [Agenda].[dbo].[System_Opened_Orders] WHERE Record_ID=@OrderID )
    BEGIN
        -- Order is not openend, get custommer data
        select ID, OrderNumber, CustommerName, CustommerCity
        FROM [Agenda].[dbo].[orders] where OrderNumber = @sqlordernr
    END
    
    using (SqlDataReader reader = command.ExecuteReader())
    {
        while(reader.Read())
        {
           // String OrderCustommerName = reader.GetString(3).TrimEnd();
           // String OrderCustommerCity= reader.GetString(4).TrimEnd();
           // lbOrderData.Text = OrderCustommerName + " " + OrderCustommerCity;
        }
    }