state_zipcode_plans 테이블에 정의 된 값에 따라 다른 목록 상자에서 상태를 선택하면 목록 상자에 자동 채우기 코드가 표시됩니다. 데이터베이스 FL의 상태가 선택되면,리스트 박스에 STATE_CODE = selected_state_code (FL)이ASP.NET 다른 Listbox 및 데이터베이스 값의 선택을 기반으로 Webforms Listbox 채우기 + 스칼라 변수 오류 선언
내가 오류 여기서 부하 zip_codes는 (332, 333, 334, 335) : EX가 가진 스칼라 변수 @statecode 선언해야 기존 코드.
어딘가에 Request.Form ("state_code")을 넣어야한다고 생각했습니다. 친구가 CS 코드에 줄을 추가 할 것을 제안했지만 구문에 대해 잘 모르겠습니다. 어떻게 작동합니까?
<asp:ListBox ID="ST_Select_ListBox" runat="server" DataSourceID="SqlDataSource1"
DataTextField="state_code" DataValueField="state_code" CssClass="style7"></asp:ListBox>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:PriceFinderConnectionString %>"
SelectCommand="SELECT [state_code] FROM [state_code] ORDER BY [state_code]">
<SelectParameters>
<asp:FormParameter DefaultValue="NULL" FormField="state_code" Name="state_code" Type="String" />
</SelectParameters>
<td class="style2"> <span class="style7">Select Zip (auto-populated based on selected State)
</span>
<br class="style7" />
<br class="style7" />
<asp:ListBox ID="Zip_Select_ListBox" runat="server" DataSourceID="SqlDataSource2" CssClass="style7">
</asp:ListBox>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:PriceFinderConnectionString %>"
SelectCommand="SELECT DISTINCT [zip_code] FROM [state_zipcode_plans] WHERE ([state_code] = @state_code)" Request.Form("state_code")>
<SelectParameters>
<asp:FormParameter DefaultValue="NULL" FormField="zip_code" Name="zip_code" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
가 여기에 C#에서 코드 숨김입니다 :
protected void Search_STZipPlan_Button_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Server=localhost;Database=PriceFinder;Integrated Security=SSPI");
conn.Open();
SqlCommand searchPF = new SqlCommand("up_SelectPriceFinderResults", conn); //calling stored procedure
searchPF.CommandType = CommandType.StoredProcedure;
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder["Data Source"] = "SqlDataSource1";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "PriceFinder;NewValue=Bad";
Console.WriteLine(builder.ConnectionString);
SqlParameter state_code = new SqlParameter("state_code", SqlDbType.VarChar, 3);
SqlParameter zip_code = new SqlParameter("zip_code", SqlDbType.VarChar, 6);
SqlParameter plan_name = new SqlParameter("plan_name", SqlDbType.VarChar, 16);
// SqlDataReader reader = SqlCommand.ExecuteReader();
// Search_Results_GridView.DataSource = reader;
Search_Results_GridView.DataBind();
conn.Close();
}
가능한 중복 : 어쨌든, 저장 프로 시저의 소스 코드를 확인/5031458/vb-net-to-c-gridview-for-a-listbox-wa-stored-procedures에서 검색) –
이 중복 된 질문이 아닙니까? –
@ 존 손 더스 : 아니오, 다른 질문이지만 같은 프로젝트에 있습니다. 이전 질문은 C#에서 코드 숨김 구문을 작성하는 방법을 묻는 것이었고 그 시점에서 저장 프로 시저를 사용하지 않았습니다. 이 질문에, 나는 오류에 대해 묻고있다. 스칼라 변수를 선언해야한다. –