こんにちは、SQLDataSource で生成した listView があります。Sql は URL から 2 つのパラメーターを取得し、選択クエリを実行します。
しかし、最初にパラメーターの値をテストしてから、If、else If を使用して SQL SelectCommand を変更したい
問題は、IF ステートメントが常に失敗することです。それらを削除してページの読み込み時にクエリを変更しても、selectCommand が削除されていても、SQLDataSource で生成した元のデータが常に返されます。
これが私のASPXファイルの一部です
<asp:SqlDataSource ID="jobSearch" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="">
<SelectParameters>
<asp:QueryStringParameter Name="jobTitle" QueryStringField="jobTitle" Type="String" />
<asp:QueryStringParameter Name="joblocation" QueryStringField="jobLocation" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
これが私の.CSファイルです
protected void Page_Load(object sender, EventArgs e)
{
// Request.QueryString["jobTitle"]
string jobTitle = Request.QueryString["jobTitle"];
string jobLocation = Request.QueryString["jobLocation"];
if (!string.IsNullOrEmpty(jobTitle) && !string.IsNullOrEmpty(jobLocation))
{
jobSearch.SelectCommand = "SELECT [jobId], [userId], [jobTitle], [jobBody], [jobPosition], [JobType], [salaryFrom], [salaryTo], [salaryType], [location], [jobCreated], [jobEnd], [jobViews], [applications] FROM [recruiter_Jobs] WHERE FREETEXT (([jobTitle]), @jobTitle) AND FREETEXT (([location]), @location) ORDER BY [jobCreated]";
test.Text = "1st if " + jobTitle;
}
else if (jobTitle == string.Empty && !string.IsNullOrEmpty(jobLocation) || string.IsNullOrWhiteSpace(jobTitle) && !string.IsNullOrEmpty(jobLocation) || string.IsNullOrEmpty(jobTitle) && !string.IsNullOrEmpty(jobLocation) || jobTitle == null && !string.IsNullOrEmpty(jobLocation))
{
jobSearch.SelectCommand = "SELECT [jobId], [userId], [jobTitle], [jobBody], [jobPosition], [JobType], [salaryFrom], [salaryTo], [salaryType], [location], [jobCreated], [jobEnd], [jobViews], [applications] FROM [recruiter_Jobs] WHERE FREETEXT (([location]), @location) ORDER BY [jobCreated]";
test.Text = "1st else if " + jobTitle;
}
else if (string.IsNullOrEmpty(jobTitle) && string.IsNullOrEmpty(jobLocation))
{
jobSearch.SelectCommand = "SELECT [jobId], [userId], [jobTitle], [jobBody], [jobPosition], [JobType], [salaryFrom], [salaryTo], [salaryType], [location], [jobCreated], [jobEnd], [jobViews], [applications] FROM [recruiter_Jobs] ORDER BY [jobCreated]";
test.Text = "last else if " + jobTitle;
}
}
私が間違っていることは何ですか?