檢索到的我有以下選項的下拉列表:DropDownList的值=「」沒有被從數據庫
<asp:DropDownList ID="ddlTaxStatus" runat="server" OnPreRender="ddlContainerStatus_PreRender">
<asp:ListItem Text="--Select--" Value="-1"></asp:ListItem>
<asp:ListItem Value="" Text="'' - Not closed"></asp:ListItem>
<asp:ListItem Value="R" Text="R - Ready to pay"></asp:ListItem>
<asp:ListItem Value="X" Text="X - Paid"></asp:ListItem>
<asp:ListItem Value="C" Text="C - Cancel"></asp:ListItem>
<asp:ListItem Value="O" Text="O - Original"></asp:ListItem>
<asp:ListItem Value="D" Text="D - Delete"></asp:ListItem>
</asp:DropDownList>
基於用戶選擇的選項,我送所選的選項對搜索我的數據庫和檢索記錄其中有相關字段中的選定值。我的SQL USP是這樣的:
ALTER PROCEDURE [dbo].[uspGetContainerSummaryRecordsForSearch] (
@fkJobID varchar(8),
@csmTaxStatus varchar(3)
)
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SET NOCOUNT ON;
SELECT fkJobID,
csmContainerID,
csmDisplayContainerID,
csmTaxStatus
FROM ContainerSummaryRecord
where fkJobID = @fkJobID
AND (@csmTaxStatus IS NULL
OR csmTaxStatus = @csmTaxStatus)
END
現在我的問題,當用戶與選擇的選項值=「」和文本=「‘’ - 沒有關閉」,我沒有得到期望的結果。這是因爲value =「」實際上在數據庫中存儲爲null。 在查詢我正在比較在這樣@csmTaxStatus子句IS NULL 輸入參數,因爲如果用戶沒有選擇任何選項意味着文本=「 - 選擇類別」值=「 - 1」,那麼不應用濾波器和所有結果都會返回(這是此選項所需的行爲)。但是這與在數據庫中存儲爲空的Value =「」相沖突。請幫助。
爲什麼不選擇沒有關閉的代碼?稱它Z ..它不會存儲爲空 – 2012-02-09 15:07:52