2014-10-08 2 views
0

엑셀 시트의 데이터를 표시하려면 asp.net 표보기를 사용하고 있습니다. 격자보기를 사용하여이 엑셀 시트에 데이터를 추가 할 수도 있습니다. 내가 직면 한 문제는 편집/업데이트 및 gridview에서 레코드 삭제/엑셀입니다. 한 행을 업데이트하면 모든 행이 업데이트됩니다. 이 시트를 엑셀이며,이 두 기둥의 이름과 값이며, 모두 여기에 데이터 키가없는 표보기에서 행을 편집/삭제하는 방법 ASP.NET

내가 시도 무엇을 업데이트 할 수 있어야로

나는 차 키가없는

GridViewRow row = (GridViewRow)gvExcelFile.Rows[e.RowIndex]; 
    TextBox TxtEditName = (TextBox)row.FindControl("TxtEditName"); 
    TextBox TxtEditValue = (TextBox)row.FindControl("TxtEditValue"); 

    string enm = TxtEditName.Text; 
    string evl = TxtEditValue.Text; 
    gvExcelFile.EditIndex = -1; 
    conn.Open(); 

    string editquery = "UPDATE [Sheet1$] set [Name]=? ,[Value]=?"; 
    OleDbCommand editcmd = new OleDbCommand(editquery, conn); 
    editcmd.Parameters.AddWithValue("[Name]", enm); 
    editcmd.Parameters.AddWithValue("[Value]", evl); 
    editcmd.ExecuteNonQuery(); 
    conn.Close(); 
    gvbind(); 

답변

0

당신은을 사용할 수 있습니다 자동 생성 나는 또한 내가 직접 그리드 뷰에서 엑셀에서 셀을 갱신이 어디 일을 시도했지만이 준

<asp:TemplateField HeaderText="S No"> 
     <ItemTemplate> 
       <%# Container.DataItemIndex + 1 %> 
      </ItemTemplate> 
</asp:TemplateField> 
+0

이 열은 어떻게 사용합니까? Gridview의 속성에 따라 DataKey로 설정해야합니까? db 쿼리를 어떻게 변경합니까? C#을 처음 접했을 때 제발 도와 주실 수 있겠습니까 # – Manish

+0

나는 당신의 제안에 너무 많은 것들을 시도했지만 아무 도움이되지 않습니다. 이 문제로 도와주세요. – Manish

0

차 컬럼으로 사용할 것입니다 열 오류 - "System.Data.OleDb.OleDbException : 구문 오류가 UPDATE 문에서." 이것은 또한 작동하지 않았다

 GridViewRow row = (GridViewRow)gvExcelFile.Rows[e.RowIndex]; 
     TextBox TxtEditName = (TextBox)row.FindControl("TxtEditName"); 
     TextBox TxtEditValue = (TextBox)row.FindControl("TxtEditValue"); 

     string enm = TxtEditName.Text; 
     string evl = TxtEditValue.Text; 
     int editindex = gvExcelFile.EditIndex; 
     int currentindex = e.RowIndex; 
     string editquery = "UPDATE [Sheet1$] set Sheet1$A"+currentindex+"=? ,Sheet1$B"+currentindex+"=?"; 
     gvExcelFile.EditIndex = -1; 
     conn.Open(); 


     OleDbCommand editcmd = new OleDbCommand(editquery, conn); 
     editcmd.Parameters.AddWithValue("Sheet1$A"+currentindex, enm); 
     editcmd.Parameters.AddWithValue("Sheet1$B"+currentindex, evl); 
     editcmd.ExecuteNonQuery(); 
     conn.Close(); 
     gvbind(); 
0

이것을 사용해 보셨습니까?

QueryString="UPDATE [Sheet1$] SET [name]=<new value>, [value]=<new vlue> WHERE ([name]=<old name> AND [value]=<old value>) 
+0

사용하려고했지만 이전 값을 가져 오는 방법이 문제입니다. 템플릿 필드의 격자보기에 레이블을 사용하여 편집 버튼을 클릭하면 텍스트 상자에 값이 표시되고 값을 변경하고 업데이트를 클릭 할 수 있습니다. 편집 버튼을 클릭하면 라벨이 사라지고 이전 값을 가져올 수 없습니다. – Manish

+0

yu는 두 개의 문자열 변수를 선언해야합니다. 사용자가 업데이트 버튼을 클릭하면 변수의 텍스트를 변수에 할당합니다. 그런 다음 여전히 변수의 이전 값이 있습니다. 이제 업데이트 쿼리의 변수를 사용할 수 있습니다. –

+0

예 I 하지만 사용자가 클릭 한 순간에 라벨이 사라지고 편집 텍스트 상자가 표시되어 이전 값에 액세스 할 수없는 순간이 있습니다. – Manish

관련 문제