2016-11-28 1 views
1

해결 방법을 찾을 수 없다는 문제점이 있습니다. 아래 그림과 같이 이벤트 목록을 표시하는 gridView가 있습니다. 내가 원하는 것은 "eventEndDate"열 값을 현재 날짜와 비교하여 마지막 열 "eventStatus"를 업데이트하는 것입니다. enter image description hereGridView C#에서 열 행 업데이트

그래서,이 데이터베이스를 통해 읽고 다음과 같은 "EventEndDate"의 값을 얻기 위해 while 루프를 추가 :

while (reader.Read()) 
     { 

      result.Add(reader.GetValue(4).ToString()); 
     } 
     reader.Close(); 

그런 다음, load 메소드 내도 나는이 코드를 추가 :

string currentDate = DateTime.Now.ToString("MMMM/d/yyyy"); 
      //endDate = DateTime.Now.ToString("MMMM/d/yyyy"); 
      //TextBox1.Text = Session["CountryName"].ToString(); 
      country = Session["CountryName"].ToString(); 
      SqlDataSource1.SelectCommand = "SELECT * FROM EventsEnglish WHERE CountryName ='" + country + "'"; 
      SqlDataSource1.DataBind(); 

      foreach (var lastDay in result) 
      { 

       string lastDayDate = Convert.ToDateTime(lastDay).ToString("MMMM/d/yyyy"); 

       if (DateTime.ParseExact(lastDayDate, "MMMM/d/yyyy", CultureInfo.InvariantCulture) > DateTime.ParseExact(currentDate, "MMMM/d/yyyy", CultureInfo.InvariantCulture)) 
       { 

        SqlDataSource1.UpdateCommand = "UPDATE EventsEnglish SET EventStatus = Open"; 
        SqlDataSource1.DataBind(); 

       } 
       else 
       { 
        SqlDataSource1.UpdateCommand = "UPDATE EventsEnglish SET EventStatus = Close"; 
        SqlDataSource1.DataBind(); 
       } 

문제는, 어떤 오류 메시지도 표시되지 않지만 이벤트 상태가 업데이트되지 않습니다 ... 그래서 내가 뭘 잘못하고 있니 ???

+1

EventStatus 열의 데이터 형식은 무엇입니까? UPDATE EventsEnglish SET EventStatus = Close' 데이터 형식이 varchar이면 오류가 발생합니다. '(작은 따옴표)는 – jayvee

+0

입니다. nvarchar (MAX) – user3599431

+0

이것은 실제 문제가있는 것 같습니다! thnx – user3599431

답변

1

나는 프로젝트에서 똑같은 일을하고있다. 내가 SQL 서버에 연결하는 C#을 그리드의이 유형을 사용하고 업데이트가 잘 작동 (만 업데이트에 대한 boundfield 값을 갱신하기 위해 SQL 명령 및 매개 변수를 변경해야합니다.

<body> 
    <form id="form1" runat="server"> 
    <div style="height: 300px"> 
     <asp:Button CssClass="btn btn-primary" ID="btn_back_to_admin" runat="server" Text="Back to Admin" OnClick="btn_back_to_admin_Click" /> 
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="ID" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" Height="260px" style="margin-bottom: 116px"> 
      <AlternatingRowStyle BackColor="White" /> 
      <Columns> 
       <asp:CommandField ShowEditButton="True" /> 
       <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> 
       <asp:BoundField DataField="Nombre" HeaderText="Nombre" SortExpression="Nombre" /> 
       <asp:BoundField DataField="Precio" HeaderText="Precio" SortExpression="Precio" /> 
       <asp:BoundField DataField="Codigo" HeaderText="Codigo" SortExpression="Codigo" /> 
       <asp:BoundField DataField="Garantia" HeaderText="Garantia" SortExpression="Garantia" /> 
       <asp:BoundField DataField="Marca" HeaderText="Marca" SortExpression="Marca" /> 
       <asp:BoundField DataField="AspectosTecnicos" HeaderText="AspectosTecnicos" SortExpression="AspectosTecnicos" /> 
       <asp:BoundField DataField="Fotografia1" HeaderText="Fotografia" SortExpression="Fotografia1" /> 
       <asp:BoundField DataField="Descripcion" HeaderText="Descripcion" SortExpression="Descripcion" /> 
      </Columns> 
      <EditRowStyle BackColor="#2461BF" /> 
      <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
      <RowStyle BackColor="#EFF3FB" /> 
      <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
      <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
      <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
      <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
      <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
     </asp:GridView> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ShoppingConnectionString %>" DeleteCommand="DELETE FROM [main_product] WHERE [P_ID] = @P_ID" InsertCommand="INSERT INTO [main_product] ([Product_name], [MRP], [Our_Prize], [Discount], [Brand], [Brand_image], [Type_of_product], [Imagepath1], [Imagepath2], [Imagepath3], [Imagepath4], [Detail], [stock], [new_arrival], [best_seller], [best_offer]) VALUES (@Product_name, @MRP, @Our_Prize, @Discount, @Brand, @Brand_image, @Type_of_product, @Imagepath1, @Imagepath2, @Imagepath3, @Imagepath4, @Detail, @stock, @new_arrival, @best_seller, @best_offer)" SelectCommand="SELECT * FROM [FO_Productos]" UpdateCommand=" Exec FOSP_ActualizarProducto @ID , @Nombre, @Descripcion , @Codigo , @Marca , @Precio , @Garantia , @AspectosTecnicos , @Fotografia1 , @Fotografia1 "> 
      <DeleteParameters> 
       <asp:Parameter Name="ID" Type="Int32" /> 
      </DeleteParameters> 
      <InsertParameters> 
       <asp:Parameter Name="Product_name" Type="String" /> 
       <asp:Parameter Name="MRP" Type="Int32" /> 
       <asp:Parameter Name="Our_Prize" Type="Int32" /> 
       <asp:Parameter Name="Discount" Type="Int32" /> 
       <asp:Parameter Name="Brand" Type="String" /> 
       <asp:Parameter Name="Brand_image" Type="String" /> 
       <asp:Parameter Name="Type_of_product" Type="String" /> 
       <asp:Parameter Name="Imagepath1" Type="String" /> 
       <asp:Parameter Name="Imagepath2" Type="String" /> 
       <asp:Parameter Name="Imagepath3" Type="String" /> 
       <asp:Parameter Name="Imagepath4" Type="String" /> 
       <asp:Parameter Name="Detail" Type="String" /> 
       <asp:Parameter Name="stock" Type="Int32" /> 
       <asp:Parameter Name="new_arrival" Type="Int32" /> 
       <asp:Parameter Name="best_seller" Type="Int32" /> 
       <asp:Parameter Name="best_offer" Type="Int32" /> 
      </InsertParameters> 
      <UpdateParameters> 
       <asp:Parameter Name="Nombre" Type="String" /> 
       <asp:Parameter Name="Precio" Type="Int32" /> 
       <asp:Parameter Name="Codigo" Type="Int32" /> 
       <asp:Parameter Name="Garantia" Type="Int32" /> 
       <asp:Parameter Name="Marca" Type="String" /> 
       <asp:Parameter Name="AspectosTecnicos" Type="String" /> 
       <asp:Parameter Name="Fotografia1" Type="String" /> 
       <asp:Parameter Name="Descripcion" Type="String" /> 
       <asp:Parameter Name="Imagepath2" Type="String" /> 
       <asp:Parameter Name="Imagepath3" Type="String" /> 
       <asp:Parameter Name="Imagepath4" Type="String" /> 
       <asp:Parameter Name="Detail" Type="String" /> 
       <asp:Parameter Name="stock" Type="Int32" /> 
       <asp:Parameter Name="new_arrival" Type="Int32" /> 
       <asp:Parameter Name="best_seller" Type="Int32" /> 
       <asp:Parameter Name="best_offer" Type="Int32" /> 
       <asp:Parameter Name="P_ID" Type="Int32" /> 
      </UpdateParameters> 
     </asp:SqlDataSource> 
     <asp:Button ID="Button1" CssClass="btn btn-primary" runat="server" Text="Back To admin Console" OnClick="Button1_Click" /> 

    </div> 
    </form> 
</body> 
+0

또한 ConnectionString을 변경해야합니다. –

2

사용하십시오 ExecuteNonQuery는을()를 사용하여 테이블을 업데이트하십시오.