我在ASP.NET gridview中有一列以這種格式(dd/mm/yyyy 00:00:00)在頁面加載時顯示日期值。這被綁定到一個聲明爲「日期」類型的列的SQL表。從ASP.NET GridView插入數據時間值到SQL Server Datatable
在頁腳模板中,有一個「插入」按鈕以及gridview的各個列中的文本框。在單擊該按鈕時,新記錄應該插入到SQL服務器Datatable中。
但是,出現調試錯誤,並顯示錯誤消息: SQLException未由用戶代碼處理。當從字符串
這裏轉換日期和/或時間是此方法的代碼 轉換失敗:
protected void insertRowToDOitems(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Add")
{
string strDO_no = ((TextBox)GridView1.FooterRow.FindControl("txtdo_no")).Text;
string strDO_item_no = ((TextBox)GridView1.FooterRow.FindControl("txtdo_item_no")).Text;
string strMaterial = ((TextBox)GridView1.FooterRow.FindControl("txtmaterial")).Text;
string strDeliveryQty = ((TextBox)GridView1.FooterRow.FindControl("txtdelivery_qty")).Text;
string strSO_no = ((TextBox)GridView1.FooterRow.FindControl("txtso_no")).Text;
string strSOItem_no = ((TextBox)GridView1.FooterRow.FindControl("txtso_item_no")).Text;
string strUOM = ((TextBox)GridView1.FooterRow.FindControl("txtuom")).Text;
string strDeliveryDate = ((TextBox)GridView1.FooterRow.FindControl("txtDelivery_date")).Text;
//SQLDataSource parameters
DOitem.InsertParameters.Clear();
DOitem.InsertParameters.Add("do_no", strDO_no);
DOitem.InsertParameters.Add("do_item_no", strDO_item_no);
DOitem.InsertParameters.Add("material", strMaterial);
DOitem.InsertParameters.Add("delivery_qty", strDeliveryQty);
DOitem.InsertParameters.Add("so_no", strSO_no);
DOitem.InsertParameters.Add("so_item_no", strSOItem_no);
DOitem.InsertParameters.Add("uom", strUOM);
DOitem.InsertParameters.Add("delivery_date", strDeliveryDate);
DOitem.Insert();
}
}
這種方法是從GridView的標籤叫:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="do_no,do_item_no" DataSourceID="DOitem" CellPadding="4"
GridLines="None"
AllowSorting="True" ShowFooter="True" style="margin-top: 1px"
ForeColor="#333333" Height="58px" Width="546px" OnRowCommand="insertRowToDOitems">
如果錯誤是由於日期格式或類型的差異造成的,那麼如何解決?
另外,如何顯示從gridview中的SQL表中檢索到的日期(「dd/MM/yyyy」)?我試過以下,但它不工作:
<EditItemTemplate>
<asp:TextBox ID="txtDelivery_date" runat="server"
Text='<%#Bind("delivery_date", "{0:dd/MM/yyyy}") %>'>
</asp:TextBox>
</EditItemTemplate>