而不只是插入数据另一个空白测试框即将到来 [英] Instead of only inserting data another blank testbox is comming

查看:57
本文介绍了而不只是插入数据另一个空白测试框即将到来的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

先生,



当我们通过gridview中的文本框将数据插入数据库时​​。数据正确地插入数据库,但问题是空白的测试框正在新行中。



我已经写了下面的代码。



设计文件:



Sir,

When We are inserting data into database through textbox in gridview. Data is inserting into database properly but issue is that blank testbox is comming in a new row.

I have written the code bellow.

Design file:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <%--DataKeyNames="Id" --%>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" BackColor="White" Width="100%" BorderColor="#CCCCCC"

            BorderStyle="None" BorderWidth="1px" CellPadding="3"

            AutoGenerateColumns="False" onrowcommand="GridView1_RowCommand">
            <RowStyle ForeColor="#000066" />
            <Columns>
                <%--<asp:TemplateField>

                    <ItemTemplate>
                        <asp:LinkButton ID="lbEdit" CommandArgument='<%#Eval("ID")%>' CommandName="EditRow"
                            ForeColor="#8C4510" runat="server">Edit</asp:LinkButton>
                        <asp:LinkButton ID="lbDelete" CommandArgument='<%#Eval("ID")%>' CommandName="DeleteRow"
                            ForeColor="#8C4510" runat="server" CausesValidation="false">Delete</asp:LinkButton>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:LinkButton ID="lbUpdate" CommandArgument='<%# Eval("ID") %>' CommandName="UpdateRow"
                            ForeColor="#8C4510" runat="server">Update</asp:LinkButton>
                        <asp:LinkButton ID="lbCancel" CommandArgument='<%# Eval("ID") %>' CommandName="CancelUpdate"
                            ForeColor="#8C4510" runat="server" CausesValidation="false">Cancel</asp:LinkButton>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True"
                    SortExpression="Id" />--%>
                <asp:TemplateField HeaderText="ServerName" SortExpression="GMName">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("GMName") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("GMName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="CheckPointTaskType" SortExpression="CheckPointTaskType">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("CheckPointTaskType") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label6" runat="server" Text='<%# Bind("CheckPointTaskType") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                 <asp:TemplateField HeaderText="CheckRemark" SortExpression="CheckRemark">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("CheckRemark") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label7" runat="server" Text='<%# Bind("CheckRemark") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
               <%-- <asp:TemplateField HeaderText="TaskIdDate" SortExpression="TaskIdDate">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("TaskIdDate") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("TaskIdDate") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>--%>
                <asp:TemplateField HeaderText="Space" SortExpression="Space">

                   <ItemTemplate>
                    <asp:TextBox ID="txtSpace" runat="server"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="rfvlInsertSpace" runat="server" ErrorMessage="Space is required!" ControlToValidate="txtSpace"

                        Text="*" ForeColor="Red" ValidationGroup="Insert"></asp:RequiredFieldValidator>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Comments" SortExpression="Comments">
                    <ItemTemplate>
                    <asp:TextBox ID="txtComments" runat="server"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="rfvlInsertComments" runat="server" ErrorMessage="Comments are required!" ControlToValidate="txtComments"

                        Text="*" ForeColor="Red" ValidationGroup="Insert"></asp:RequiredFieldValidator>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Remarks" SortExpression="Remarks">
                    <ItemTemplate>
                    <asp:TextBox ID="txtRemarks" runat="server"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="rfvlInsertRemarks" runat="server" ErrorMessage="Remarks are required!" ControlToValidate="txtRemarks"

                        Text="*" ForeColor="Red" ValidationGroup="Insert"></asp:RequiredFieldValidator>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="White" ForeColor="#000066" />
            <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
            <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
        </asp:GridView>
        <asp:GridView ID="GridView2" runat="server" BackColor="White" Width="100%" BorderColor="#CCCCCC"

            BorderStyle="None" BorderWidth="1px" CellPadding="3"

            AutoGenerateColumns="False" onrowcommand="GridView1_RowCommand">
            <RowStyle ForeColor="#000066" />
            <Columns>
            </Columns>
            <FooterStyle BackColor="White" ForeColor="#000066" />
            <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
            <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
        </asp:GridView>

        <br />
    </div>
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
    <br />
    <br />
    </form>
</body>
</html>









Code Behind file:







Code Behind file:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MySql.Data;
using MySql.Data.MySqlClient;  

public partial class _Default : System.Web.UI.Page 
{
        
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindGridViewData();             
        }
    }

    private void BindGridViewData()
    {
        string CS = ConfigurationManager.ConnectionStrings["CheckListConnectionString"].ConnectionString;
        MySqlConnection con = new MySqlConnection(CS);
        string strQuery = "select G.GMName, T.CheckPointTaskType, T.CheckRemark, S.Space, S.Comments, S.Remarks from tblTaskMasterStatus S, tblTaskMaster T, tblGeneralMaster G where S.TaskId=T.Id and T.ServerId=G.ID";
        //string strQuery = "select S.Id, G.GMName, T.CheckPointTaskType, T.CheckRemark, S.TaskIdDate, S.Space, S.Comments, S.Remarks from tblTaskMasterStatus S, tblTaskMaster T, tblGeneralMaster G where S.TaskId=T.Id and T.ServerId=G.ID";
        //string strQuery = "T.Id, select G.GMName, T.CheckPointTaskType, T.CheckRemark from tblTaskMasterStatus S, tblTaskMaster T, tblGeneralMaster G where S.TaskId=T.Id and T.ServerId=G.ID";
        MySqlDataAdapter da = new MySqlDataAdapter(strQuery, con);
        DataSet ds = new DataSet();
        da.Fill(ds);       
        GridView1.DataSource = ds;        
        GridView1.DataBind();        
         
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            
            Decimal Space = Convert.ToDecimal(((TextBox)row.FindControl("txtSpace")).Text);
            string GMName = ((Label)row.FindControl("Label1")).Text; 
            string Comments = ((TextBox)row.FindControl("txtComments")).Text;
            string Remarks = ((TextBox)row.FindControl("txtRemarks")).Text;
            EmployeeDataAccessLayer.InsertEmployee(GMName, Space, Comments, Remarks);            
        }        
        BindGridViewData(); 
    
    }
}

EmployeeDataAccessLayer Class:
public class EmployeeDataAccessLayer
{

    public static List<employee> GetAllTaskMaster()
    {
        List<employee> listEmployees = new List<employee>();

        string CS = ConfigurationManager.ConnectionStrings["CheckListConnectionString"].ConnectionString;
        using (MySqlConnection con = new MySqlConnection(CS))
        {
            MySqlCommand cmd = new MySqlCommand("Select ID, TaskId, TaskIdDate, Space, Comments, Remarks, CheckedBy, Status from tblTaskMasterStatus", con);
            con.Open();
            MySqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                Employee employee = new Employee();
                employee.Id = Convert.ToInt32(rdr["ID"]);
                employee.TaskId = Convert.ToInt32(rdr["TaskId"]);
                employee.TaskIdDate = Convert.ToDateTime(rdr["TaskIdDate"].ToString());
                employee.Space = Convert.ToDecimal(rdr["Space"]);
                employee.Comments = rdr["Comments"].ToString();
                employee.Remarks = rdr["Remarks"].ToString();
                employee.CheckedBy = rdr["CheckedBy"].ToString();
                employee.Status = rdr["Status"].ToString();
                listEmployees.Add(employee);
            }
        }
        return listEmployees;
    }      

    public static int InsertEmployee( string GMName, decimal Space, string Comments, string Remarks)
    {
        string CS = ConfigurationManager.ConnectionStrings["CheckListConnectionString"].ConnectionString;
        using (MySqlConnection con = new MySqlConnection(CS))
        {
            string selectTaskId = "select TaskId from tbltaskmasterstatus where TaskId=(select ServerId from tbltaskmaster where ServerId=(select Id from tblgeneralmaster where GMName=@GMName))";

            MySqlCommand cmdTaskId = new MySqlCommand(selectTaskId, con);
            
            con.Open();
            cmdTaskId.CommandType = CommandType.Text;
            MySqlParameter paramGMName = new MySqlParameter("@GMName", GMName);
            cmdTaskId.Parameters.Add(paramGMName);

            int ResultId = (int)cmdTaskId.ExecuteScalar();                        

            string updateQuery = "Insert into tblTaskMasterStatus (TaskId, Space, Comments, Remarks)" +
                " values (@TaskId, @Space, @Comments, @Remarks)";
            MySqlCommand cmd = new MySqlCommand(updateQuery, con);
            
            MySqlParameter paramSpace = new MySqlParameter("@Space", Space);
            cmd.Parameters.Add(paramSpace);
            MySqlParameter paramComments = new MySqlParameter("@Comments", Comments);
            cmd.Parameters.Add(paramComments);
            MySqlParameter paramRemarks = new MySqlParameter("@Remarks", Remarks);
            cmd.Parameters.Add(paramRemarks);
            
            MySqlParameter paramTaskId = new MySqlParameter("@TaskId", ResultId);
            cmd.Parameters.Add(paramTaskId); 
            
            return cmd.ExecuteNonQuery();
        }
    }
}





Kindly give me solution to insert data into database without generating another textbox on btnSubmit click.



Kindly give me solution to insert data into database without generating another textbox on btnSubmit click.

推荐答案

Try this:

Try this:
protected void btnSubmit_Click(object sender, EventArgs e)
{
   foreach (GridViewRow row in GridView1.Rows)
   {
      Decimal Space = Convert.ToDecimal(((TextBox)row.FindControl("txtSpace")).Text);
      string GMName = ((Label)row.FindControl("Label1")).Text; 
      string Comments = ((TextBox)row.FindControl("txtComments")).Text;
      string Remarks = ((TextBox)row.FindControl("txtRemarks")).Text;

      //here you can add a condition when should insert your data into the database
      if(GMName != string.Empty)
      {      
          EmployeeDataAccessLayer.InsertEmployee(GMName, Space, Comments, Remarks); 
      }
   } 

   BindGridViewData(); 
}


这篇关于而不只是插入数据另一个空白测试框即将到来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆