Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何清除GridView中的数据?_C#_Asp.net_Gridview - Fatal编程技术网

C# 如何清除GridView中的数据?

C# 如何清除GridView中的数据?,c#,asp.net,gridview,C#,Asp.net,Gridview,我在清除Gridview中的数据时遇到问题。我遵循了关于这个问题的其他问题中给出的所有示例,但我的Gridview并不清楚。当我第二次搜索时,它只会添加到当前的Gridview数据中。我是不是用错了方法 例如,我已经通过使用按钮搜索用户来填充我的GridView。它将向gridview中添加6个数据。当我想搜索另一个用户时,它不会首先清除数据并添加数据,而是将当前gridview中的当前数据叠加在一起,总共给我12个数据 public partial class Update_User_Sche

我在清除Gridview中的数据时遇到问题。我遵循了关于这个问题的其他问题中给出的所有示例,但我的Gridview并不清楚。当我第二次搜索时,它只会添加到当前的Gridview数据中。我是不是用错了方法

例如,我已经通过使用按钮搜索用户来填充我的GridView。它将向gridview中添加6个数据。当我想搜索另一个用户时,它不会首先清除数据并添加数据,而是将当前gridview中的当前数据叠加在一起,总共给我12个数据

public partial class Update_User_Schedule : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[5] { new DataColumn("Test Name"), new DataColumn("Duration"), new DataColumn("Start Date"), new DataColumn("End Date"), new DataColumn("Limit") });
            ViewState["Patient"] = dt;
            this.BindGrid();
        }
    }

    protected void BindGrid()
    {
        GridView1.DataSource = (DataTable)ViewState["Patient"];
        GridView1.DataBind();
    }

    protected void btnUser_Click(object sender, EventArgs e)
    {
        GridView1.DataSource = null;
        GridView1.DataBind();

        int User_ID = 0, TS_IDstr = 0, Test_ID = 0, Duration = 0, Limit = 0;
        string Test_Name = "";
        string Name = cmbName.Text;
        string start = "", end = "";

        List<int> TS_ID = new List<int>();

        SqlConnection myConn = new SqlConnection("Data Source=localhost;" + "Initial Catalog=IBBTS_DB; Integrated Security =SSPI");
        SqlCommand retrieveUser_IDCmd = new SqlCommand("SELECT User_ID FROM Patient where Name ='" + Name + "' ;", myConn);
        myConn.Open();
        SqlDataReader reader = retrieveUser_IDCmd.ExecuteReader();
        while (reader.Read())
        {
            User_ID = (Convert.ToInt32(reader.GetValue(0).ToString()));
        }
        reader.Close();

        SqlCommand retrieveTS_IDCmd = new SqlCommand("SELECT TS_ID FROM testSet where User_ID ='" + User_ID + "' ;", myConn);
        SqlDataReader reader2 = retrieveTS_IDCmd.ExecuteReader();
        while (reader2.Read())
        {
            TS_ID.Add(Convert.ToInt32(reader2.GetValue(0).ToString()));
        }
        reader2.Close();

        foreach (int element in TS_ID)
        {
            TS_IDstr = element;

            SqlCommand retrieveTest_IDCmd = new SqlCommand("SELECT Test_ID FROM testSet where TS_ID ='" + TS_IDstr + "' ;", myConn);
            SqlDataReader reader3 = retrieveTest_IDCmd.ExecuteReader();
            while (reader3.Read())
            {
                Test_ID = (Convert.ToInt32(reader3.GetValue(0).ToString()));
            }
            reader3.Close();

            SqlCommand retrieveTest_NameCmd = new SqlCommand("SELECT Test_Name FROM Test where Test_ID ='" + Test_ID + "' ;", myConn);
            SqlDataReader reader4 = retrieveTest_NameCmd.ExecuteReader();
            while (reader4.Read())
            {
                Test_Name = (reader4.GetValue(0).ToString());
            }
            reader4.Close();

            SqlCommand retrieveDurationCmd = new SqlCommand("SELECT Duration FROM testSet where TS_ID ='" + TS_IDstr + "' ;", myConn);
            SqlDataReader reader5 = retrieveDurationCmd.ExecuteReader();
            while (reader5.Read())
            {
                Duration = (Convert.ToInt32(reader5.GetValue(0).ToString()));
            }
            reader5.Close();

            SqlCommand retrieveStart_DateCmd = new SqlCommand("SELECT startDate FROM testSet where TS_ID ='" + TS_IDstr + "' ;", myConn);
            SqlDataReader reader6 = retrieveStart_DateCmd.ExecuteReader();
            while (reader6.Read())
            {
                start = (reader6.GetValue(0).ToString());
            }
            reader6.Close();

            SqlCommand retrieveEnd_DateCmd = new SqlCommand("SELECT endDate FROM testSet where TS_ID ='" + TS_IDstr + "' ;", myConn);
            SqlDataReader reader7 = retrieveEnd_DateCmd.ExecuteReader();
            while (reader7.Read())
            {
                end = (reader7.GetValue(0).ToString());
            }
            reader7.Close();

            SqlCommand retrieveLimitCmd = new SqlCommand("SELECT Limit FROM testSet where TS_ID ='" + TS_IDstr + "' ;", myConn);
            SqlDataReader reader8 = retrieveLimitCmd.ExecuteReader();
            while (reader8.Read())
            {
                Limit = (Convert.ToInt32(reader8.GetValue(0).ToString()));
            }
            reader8.Close();


            DataTable dt = (DataTable)ViewState["Patient"];
            dt.Rows.Add(Test_Name, Duration,start, end, Limit);
            ViewState["Patient"] = dt;
            this.BindGrid();
        }
    }
}
公共部分类更新\u用户\u计划:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!this.IsPostBack)
{
DataTable dt=新的DataTable();
AddRange(new DataColumn[5]{new DataColumn(“测试名称”)、new DataColumn(“持续时间”)、new DataColumn(“开始日期”)、new DataColumn(“结束日期”)、new DataColumn(“限制”)};
ViewState[“患者”]=dt;
这个.BindGrid();
}
}
受保护的void BindGrid()
{
GridView1.DataSource=(DataTable)ViewState[“患者”];
GridView1.DataBind();
}
受保护的无效用户单击(对象发送者,事件参数e)
{
GridView1.DataSource=null;
GridView1.DataBind();
int User_ID=0,TS_IDstr=0,Test_ID=0,Duration=0,Limit=0;
字符串测试_Name=“”;
字符串名称=cmbName.Text;
字符串start=“”,end=“”;
列表TS_ID=新列表();
SqlConnection myConn=newsqlconnection(“数据源=localhost;“+”初始目录=IBBTS_DB;集成安全=SSPI”);
SqlCommand retrieveUser_IDCmd=new SqlCommand(“从患者中选择用户ID,其中姓名=”“+Name+”;”,myConn);
myConn.Open();
SqlDataReader=retrieveUser_IDCmd.ExecuteReader();
while(reader.Read())
{
User_ID=(Convert.ToInt32(reader.GetValue(0.ToString());
}
reader.Close();
SqlCommand retrieveTS_IDCmd=newsqlcommand(“从testSet中选择TS_ID,其中User_ID='”+User_ID+“;”,myConn);
SqlDataReader reader2=retrieveTS_IDCmd.ExecuteReader();
while(reader2.Read())
{
TS_ID.Add(Convert.ToInt32(reader2.GetValue(0.ToString());
}
reader2.Close();
foreach(TS_ID中的int元素)
{
TS_IDstr=元素;
SqlCommand retrieveTest_IDCmd=new SqlCommand(“从testSet中选择Test_ID,其中TS_ID='”+TS_IDstr+“;”,myConn);
SqlDataReader reader3=retrieveTest_IDCmd.ExecuteReader();
while(reader3.Read())
{
Test_ID=(Convert.ToInt32(reader3.GetValue(0.ToString());
}
reader3.Close();
SqlCommand retrieveTest_NameCmd=newsqlcommand(“从Test中选择Test_Name,其中Test_ID='”+Test_ID+“;”,myConn);
SqlDataReader reader4=retrieveTest_NameCmd.ExecuteReader();
while(reader4.Read())
{
Test_Name=(reader4.GetValue(0.ToString());
}
reader4.Close();
SqlCommand retrieveDurationCmd=new SqlCommand(“从测试集中选择持续时间,其中TS_ID='”+TS_IDstr+“;”,myConn);
SqlDataReader reader5=retrieveDurationCmd.ExecuteReader();
while(reader5.Read())
{
Duration=(Convert.ToInt32(reader5.GetValue(0.ToString()));
}
reader5.Close();
SqlCommand retrieveStart_DateCmd=new SqlCommand(“从testSet中选择startDate,其中TS_ID='”+TS_IDstr+“;”,myConn);
SqlDataReader reader6=retrieveStart_DateCmd.ExecuteReader();
while(reader6.Read())
{
start=(reader6.GetValue(0.ToString());
}
reader6.Close();
SqlCommand retrieveEnd_DateCmd=new SqlCommand(“从测试集中选择endDate,其中TS_ID='”+TS_IDstr+“;”,myConn);
SqlDataReader reader7=retrieveEnd_DateCmd.ExecuteReader();
while(reader7.Read())
{
end=(reader7.GetValue(0.ToString());
}
reader7.Close();
SqlCommand retrieveLimitCmd=newsqlcommand(“从testSet中选择限制,其中TS_ID='”+TS_IDstr+“;”,myConn);
SqlDataReader reader8=retrieveLimitCmd.ExecuteReader();
while(reader8.Read())
{
Limit=(Convert.ToInt32(reader8.GetValue(0.ToString()));
}
reader8.Close();
DataTable dt=(DataTable)视图状态[“患者”];
添加(测试名称、持续时间、开始、结束、限制);
ViewState[“患者”]=dt;
这个.BindGrid();
}
}
}

DataTable dt=(DataTable)视图状态[“患者”];添加(测试名称、持续时间、开始、结束、限制);您需要清除viewstate中的数据,因为您只是在此处添加结果。其中代码为[GridView1.DataSource=null;GridView1.DataBind();]放置以下DataTable dt=new DataTable();AddRange(new DataColumn[5]{new DataColumn(“测试名称”)、new DataColumn(“持续时间”)、new DataColumn(“开始日期”)、new DataColumn(“结束日期”)、new DataColumn(“限制”)};ViewState[“患者”]=dt;否则,您只需填充一个现有表,或者将表创建分离到一个新方法中,并在页面加载时以及在向表中重新添加记录之前调用。您还可以在方法的开头调用以清除数据表。像这样受保护的void btuser_Click(objectsender,EventArgs e){if(ViewState[“Patient”]!=null){DataTable dt=(DataTable)ViewState[“Patient”];dt.Clear();ViewState[“Patient”]=dt;}@lairdstrick非常感谢。第二个是