【发布时间】:2014-07-11 03:43:57
【问题描述】:
我有根据我在文本框中提供的日期范围加载的 gridview。它工作正常,但是当我输入数据库中不存在记录的数据范围时,它会引发格式异常错误。它在我将复选框绑定到数据库列的行上引发错误。
代码:
<asp:GridView ID="GridViewSmsComplaints" AllowPaging="True" PageSize="4" runat="server" AutoGenerateColumns="False" CssClass="mGrid" BorderColor="#333333" Width="550px" OnPageIndexChanging="GridViewSmsComplaints_PageIndexChanging" >
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" />
<asp:BoundField HeaderText="Recieving Date" DataField="RecievingDate" />
<%-- <asp:BoundField HeaderText="ToMobileNo" DataField="ToMobileNo" /> --%>
<asp:BoundField HeaderText="FromMobileNo" DataField="FromMobileNo" />
<asp:BoundField HeaderText="Message" DataField="Message" >
<ItemStyle Wrap="True" />
</asp:BoundField>
<asp:TemplateField HeaderText="IsComplaint">
<ItemTemplate>
<asp:CheckBox ID="ckboxIsComplaint" runat="server" Checked='<%# Convert.ToBoolean(Eval("IsComplaint").ToString()) %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
SP:
ALTER PROCEDURE [dbo].[SearchSmsComplaintsByDate_SP]
@DateFrom Datetime = null,
@DateTo DateTime = null
AS
BEGIN
Begin Try
IF(@DateFrom is null AND @DateTo is null)
Begin
Set @DateFrom = Convert(date,(Select min(ReceivedMessages.ReceivedDateTime) from ReceivedMessages))
Set @DateTo = Convert(date,(Select max(ReceivedMessages.ReceivedDateTime) from ReceivedMessages))
SELECT [ID]
,REPLACE(convert(varchar, ReceivedMessages.ReceivedDateTime, 106), ' ','/') as RecievingDate
,[FromMobileNo]
,[Message]
,[IsComplaint]
FROM [CmsSMSDb].[dbo].[ReceivedMessages]
where Convert(date,ReceivedDateTime)>= @DateFrom AND Convert(date,ReceivedDateTime)<= @DateTo
AND IsComplaint!=1
End
Else IF(@DateFrom is not null AND @DateTo is not null)
Begin
SELECT [ID]
,REPLACE(convert(varchar, ReceivedMessages.ReceivedDateTime, 106), ' ','/') as RecievingDate
,[FromMobileNo]
,[Message]
,[IsComplaint]
FROM [CmsSMSDb].[dbo].[ReceivedMessages]
where Convert(date,ReceivedDateTime)>= @DateFrom AND Convert(date,ReceivedDateTime)<= @DateTo
AND IsComplaint!=1
End
End Try
Begin Catch
Select ERROR_MESSAGE() as ErrorMsg
End Catch
END
【问题讨论】:
标签: asp.net c#-4.0 gridview checkbox ado.net