Asp:由dropdownlistbox确定的标签无法正常工作

时间:2016-07-25 15:39:59

标签: c# html asp.net ssms

这一天工作,不知道发生了什么,但现在不是,我无法弄明白。标签只会给我一件约20件(给予或拿走)不同物品的物品。无论我在下拉列表中选择什么,它总是在标签上给我相同的值。

HTML:

                    <td>
                    <asp:DropDownList ID="ddlCompanyCode" runat="server" CssClass="Dropdown" AutoPostBack="True" OnSelectedIndexChanged="ddlCompanyCode_SelectedIndexChanged" Width="139px" DataSourceID="CompanyCodeDS" DataTextField="CompanyCode" DataValueField="CompanyCode"></asp:DropDownList>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="ddlCompanyCode" Display="Dynamic" ErrorMessage="*Please select a drop down list item." ForeColor="#CC0000" ValidationGroup="Submit"></asp:RequiredFieldValidator>
                </td>
                <td>
                    <asp:Label ID="lblSourceSyst" runat="server" CssClass="txtLabel" Text="Select Company Code" Width="137px" ></asp:Label>
                </td>
    <asp:SqlDataSource ID="CompanyCodeDS" runat="server" SelectCommandType="StoredProcedure" ConnectionString="<%$ ConnectionStrings:RptDatamartConnectionString %>" SelectCommand="[AXMap].[SelectCompanyCode_GLSourceCOA]">
    </asp:SqlDataSource>

C#:

        protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ddlCompanyCode.Items.Add(new ListItem("--Please Select--", ""));
            ddlCompanyCode.AppendDataBoundItems = true;
        }
    }

    protected void ddlCompanyCode_SelectedIndexChanged(object sender, EventArgs e)
    {
        String connectionString = ConfigurationManager.ConnectionStrings["RptDatamartConnectionString"].ConnectionString;
        String sqlStoredProc = "RptDatamart.AXMap.SelectCompanyCode_GLSourceCOA";
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("@CompanyCode", ddlCompanyCode.SelectedItem.Value);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = sqlStoredProc;
        cmd.Connection = con;
        try
        {
            con.Open();
            SqlDataReader dataReader = cmd.ExecuteReader();
            while (dataReader.Read())
            {
                lblSourceSyst.Text = dataReader["SourceSystem"].ToString();
            }
        }
        catch (Exception ex)
        {
            lblStatus.Text = ex.Message;
        }
    }

然后我尝试使用存储过程...

ALTER PROCEDURE [AXMap].[SelectCompanyCode_GLSourceCOA] 
@CompanyCode varchar(10) = Null,
@SourceSystem nvarchar(255) = Null

AS
BEGIN
SET NOCOUNT OFF;

Select distinct CompanyCode, SourceSystem from [RptDatamart].[AXMap].[GLSourceCOA]

END

我的sql可能非常糟糕,但我认为它会起作用。

1 个答案:

答案 0 :(得分:0)

lblSourceSyst.Text = dataReader["SourceSystem"].ToString();

应该是:

lblSourceSyst.Text += dataReader["SourceSystem"].ToString();