使用SQL数据源调用存储过程?

时间:2017-05-01 20:06:45

标签: asp.net sql-server database stored-procedures

我想使用SQL数据源中的存储过程填充Label。 我的存储过程有两个参数,但我不知道如何调用它。

我的表与此类似:

CityID      CityName             London                               Paris                                   
----------- -------------------- --------------------------------------- --
1           London               0                                       60                                      
2           Paris                50                                      0                                       
3           Berlin               90                                      60                                      
4           Madrid               150                                     90                                      
5           Dublin               30                                      80                                      
6           Rome                 75                                      88    

我的目的是根据从2个单独的下拉列表中选择的城市返回一个值。 例如伦敦,巴黎将返回60

似乎我已经设置了数据源

<asp:SqlDataSource ID="JourneyPrice" runat="server" 
ConnectionString="<%$ 
ConnectionStrings:connectToEnterpriseAssignmentDB %>" SelectCommand="GetBusPrice" 
SelectCommandType="StoredProcedure">
 <SelectParameters>
<asp:ControlParameter ControlID="ddlDepart" Name="city" PropertyName="SelectedValue" Type="String" />
  <asp:ControlParameter ControlID="ddlDestination" Name="column" PropertyName="SelectedValue" Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>

我的c#代码是:

DataView dataViewJourneyPrice = (DataView)JourneyPrice.Select(DataSourceSelectArguments.Empty);
            if (dataViewJourneyPrice != null)
            {


                if (dataViewJourneyPrice.Count > 0)
                    // Whatever column is coming from database
                    lblPrice.Text = dataViewJourneyPrice.ToString();

            }
        }

这不会产生正确的结果

解决:  labelBusPrice.Text = dataViewJourneyPrice[0]["ColumnName"].ToString();

1 个答案:

答案 0 :(得分:1)

您只需从数据视图中提取值即可。一旦更正了列名,您可能希望将其强制转换为真正的数据类型,以便在放入标签之前进行正确的格式化。

if (dataViewJourneyPrice.Count > 0)
    // Whatever column is coming from database
    labelBusPrice.Text = dataViewJourneyPrice[0]["ColumnName"].ToString();