2016-03-11 5 views
0
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
      { 
        string Createid =((Label)GridView1.Rows[e.RowIndex].FindControl("lblID")).Text; 
        string Client_Name = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtClientName")).Text; 
        string Client_Contact_Name = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtContactPerson")).Text; 
        string Client_Contact_Role = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtPosition")).Text; 
        string Client_Contact_Email_ID = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtMailID")).Text; 
        string Phone_Number = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtPhNumber")).Text; 
        string No_of_Openings = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtOpenings")).Text; 
        string Technology = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtTech")).Text; 
        string Status = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtStatus")).Text; 
        string Op_Start_Date = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtStrtDate")).Text; 
        string Op_End_Date = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtEndDate")).Text; 
      con.Open(); 

        SqlCommand cmd = new SqlCommand("UPDATE Client_Det set [email protected]_Name, " + " Client_Contact_Name= @Client_Contact_Name, " + " Client_Contact_Role= @Client_Contact_Role, " + " Client_Contact_Email_ID = @Client_Contact_Email_ID , " + " Phone_Number= @Phone_Number , " + "[email protected]_of_Openings , " + "[email protected], " + "[email protected], " + " [email protected]_Start_Date , " + " [email protected]_End_Date where Createid= @Createid", con); 
        cmd.ExecuteNonQuery(); 

        con.Close(); 
        GridView1.EditIndex = -1; 
        gvbind(); 


       } 

Моих таблица типов данныхGridview Update не работает

enter image description here

Выше приведено в таблице типов данных.

После нажатия на кнопку обновления он даже не показывает каких-либо ошибок

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" align="center" 
      DataKeyNames="Createid" OnPageIndexChanging="GridView1_PageIndexChanging" 
      OnRowCancelingEdit="GridView1_RowCancelingEdit" 
      OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" 
       EnableViewState="False" AllowPaging="True" PageSize="5"> 
    <Columns> 


<asp:TemplateField ItemStyle-Width = "30px" HeaderText = "ID"> 
    <ItemTemplate> 
     <asp:Label ID="lblID" runat="server" 
     Text='<%# Eval("Createid")%>'></asp:Label> 
    </ItemTemplate> 

</asp:TemplateField> 


<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Client"> 
    <ItemTemplate> 
     <asp:Label ID="lblClientName" runat="server" 
       Text='<%# Eval("Client_Name")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtClientName" runat="server" 
      Text='<%# Eval("Client_Name")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtClientName" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Contact Person"> 
    <ItemTemplate> 
     <asp:Label ID="lblContactPerson" runat="server" 
       Text='<%# Eval("Client_Contact_Name")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtContactPerson" runat="server" 
      Text='<%# Eval("Client_Contact_Name")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtContactPerson" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Position"> 
    <ItemTemplate> 
     <asp:Label ID="lblPosition" runat="server" 
       Text='<%# Eval("Client_Contact_Role")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtPosition" runat="server" 
      Text='<%# Eval("Client_Contact_Role")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtPosition" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 


<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Mail ID"> 
    <ItemTemplate> 
     <asp:Label ID="lblMailID" runat="server" 
       Text='<%# Eval("Client_Contact_Email_ID")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtMailID" runat="server" 
      Text='<%# Eval("Client_Contact_Email_ID")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtMailID" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Phone Number"> 
    <ItemTemplate> 
     <asp:Label ID="lblPhNumber" runat="server" 
       Text='<%# Eval("Phone_Number")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtPhNumber" runat="server" 
      Text='<%# Eval("Phone_Number")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtPhNumber" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "No of Openings"> 
    <ItemTemplate> 
     <asp:Label ID="lblOpenings" runat="server" 
       Text='<%# Eval("No_of_Openings")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtOpenings" runat="server" 
      Text='<%# Eval("No_of_Openings")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtOpenings" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Technology"> 
    <ItemTemplate> 
     <asp:Label ID="lblTech" runat="server" 
       Text='<%# Eval("Technology")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtTech" runat="server" 
      Text='<%# Eval("Technology")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtTech" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Status"> 
    <ItemTemplate> 
     <asp:Label ID="lblStatus" runat="server" 
       Text='<%# Eval("Status")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtStatus" runat="server" 
      Text='<%# Eval("Status")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtStatus" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "Start Date"> 
    <ItemTemplate> 
     <asp:Label ID="lblStrtDate" runat="server" 
       Text='<%# Eval("Op_Start_Date","{0:dd-MM-yyyy}")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtStrtDate" runat="server" 
      Text='<%# Eval("Op_Start_Date","{0:dd-MM-yyyy}")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtStrtDate" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "End Date"> 
    <ItemTemplate> 
     <asp:Label ID="lblEndDate" runat="server" 
       Text='<%# Eval("Op_End_Date","{0:dd-MM-yyyy}")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtEndDate" runat="server" 
      Text='<%# Eval("Op_End_Date","{0:dd-MM-yyyy}")%>'></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtEndDate" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 


     <asp:CommandField ShowEditButton="true" /> 


     </Columns> 



</asp:GridView> 

Это мой исходный код для GridView ... ли я сделал ничего плохого в предоставлении правильные поля .. пожалуйста, дайте мне знать

+0

Любые ошибки, котор вы получаете ? –

+0

Я не получаю никаких ошибок ... но после нажатия обновления он не обновляется. – Sr3vs

+0

Прошли ли вы через свой код, чтобы узнать, есть ли у вас значение в каждой переменной и ваш запрос выполняется? – Izzy

ответ

0

Вы делаете это неправильно. Ваш запрос на обновление ничего не делает. Либо вы должны назначить его как параметр, либо указать имя переменной напрямую.

Вариант 1


SqlCommand cmd = new SqlCommand("UPDATE Client_Det set Client_Name='"+ Client_Name +"', Client_Contact_Name='"+ Client_Contact_Name +"', Client_Contact_Role='"+Client_Contact_Role+"', Client_Contact_Email_ID ='"+ Client_Contact_Email_ID+"', Phone_Number='"+Phone_Number+"', No_of_Openings='"+No_of_Openings+"', Technology='"+Technology+"', Status='"+Status+"', Op_Start_Date='"+ Op_Start_Date +"', Op_End_Date='"+Op_End_Date+"' where Createid='"+Createid+"'", con); 

There переменные, где не правильно упомянутые. Таким образом, значения не привязывались к запросу.

PS - Это очень плохой способ написать запрос в перспективе безопасности. Ваш код держит пространство открытым для атаки SQL-инъекций. Вариант 2 будет лучшим способом писать запросы

Вариант 2


Through Command parameters

Так что это в основном вы присваивая значение параметров и имя параметра, данные параметры команды должны быть равны имени параметра, указанному в запросе. Таким образом, ниже - это просто представление о том, как вы можете достичь.

string sql = "UPDATE Client_Det set [email protected]_Name, Client_Contact_Name= @Client_Contact_Name, Client_Contact_Role= @Client_Contact_Role, Client_Contact_Email_ID = @Client_Contact_Email_ID , Phone_Number= @Phone_Number ,[email protected]_of_Openings, [email protected],[email protected],[email protected]_Start_Date, [email protected]_End_Date where Createid= @Createid"; 

SqlCommand cmd = new SqlCommand(sql, con); 

cmd.Parameters.AddWithValue("@Client_Name", Client_Name); 
cmd.Parameters.AddWithValue("@Client_Contact_Name",Client_Contact_Name) 
/*Add for remaining param values*/ 


cmd.ExecuteNonQuery(); 
con.Close(); 
GridView1.EditIndex = -1; 
gvbind(); 

первый параметр на каждом AddValueWith т.е. @Client_Name и @Client_Contact_Name должны быть такими же, как указано в update query и 2-го параметра т.е. Client_Name и Client_Contact_Name являются значения выбираются из GridView Controls как TextBox, Label и т.д.,

+0

Я пробовал, как вы указали код ... но все равно такая же проблема ... он не обновляется ... и все же страница находится только в режиме редактирования. Благодарим за предложение – Sr3vs

+0

Поместите «отладчик» в коде и проверить? также оберните свой код в блок 'try catch', проверьте, есть ли у вас какое-либо исключение –