我的datagrid点击“更新“为什么不变?程序如下:
Private Sub dgdns_UpdateCommand(..............)
t0 = CType(e.Item.Cells(1).Controls(0), TextBox)
        Dim id As Integer = CInt(t0.Text)
        Dim t1 As TextBox
        t1 = CType(e.Item.Cells(3).Controls(0), TextBox)
        Dim t2 As TextBox
        t2 = CType(e.Item.Cells(4).Controls(0), TextBox)
        Dim t3 As TextBox
        t3 = CType(e.Item.Cells(5).Controls(0), TextBox)
        Dim t4 As TextBox
        t4 = CType(e.Item.Cells(6).Controls(0), TextBox)
        Dim sql As String = "update dns set content='" & t1.Text & "',dnsst='" & CDate(t2.Text) & "',dnset='" & CDate(t3.Text) & "',dnsmemo='" & fu.htmlencode(t4.Text) & "' where dnsid='" & id & "'"
        Dim mycom As New SqlCommand(sql, myconn.conn)
        mycom.ExecuteNonQuery()
        dgdns.EditItemIndex = -1
        dnsbind()还有数据库中的时间为2005-1-1为什么绑定到datagrid变成2005-1-1 00:00:00怎么解决这个问题?
谢谢!

解决方案 »

  1.   

    <%# Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "Date")).ToShortDateString() %>
      

  2.   

    关于第一个问题,
    没时间详细看楼主的代码,如果UPDATE语句没问题就是,就是初学者容易范的错误了,
    提示一下可能的问题出现在哪里:楼主的DataGrid绑定是不是在Page_Load事件里?
    若是,加上if(!Page.IsPostBack)判断再绑定,再试试
    因为aspx页面的生存周期过程是先处理Page_Load事件,再处理其他的回送事件比如button 的 Click如果没有if(!Page.IsPostBack)判断,这样绑定先于更新(因为Page_Load先于buttonId_Click),数据库原来的值又覆盖了客户端填充的值,所以即使更新了,也只是将数据库原来的值重新UPDATE一次
      

  3.   

    还是用参数吧,拼SQL语句头都看痛了,一不小心哪儿输错一个引号就要找半天。要不你把拼好的SQL语句打印出来看看是否正确