C# 在插入到gridview之前查找重复项
如何在插入gridview之前进行检查,我的插入代码位于按钮单击下方C# 在插入到gridview之前查找重复项,c#,asp.net,C#,Asp.net,如何在插入gridview之前进行检查,我的插入代码位于按钮单击下方 if (Session["dtInSession"] != null) dt1 = (DataTable)Session["dtInSession"]; DataRow dr = dt1.NewRow(); dr["AccessoryName"] = drpAccessories.SelectedItem; dr["ConditionName"] = drpConditions.Selected
if (Session["dtInSession"] != null)
dt1 = (DataTable)Session["dtInSession"];
DataRow dr = dt1.NewRow();
dr["AccessoryName"] = drpAccessories.SelectedItem;
dr["ConditionName"] = drpConditions.SelectedItem;
dt1.Rows.Add(dr);
Session["dtInSession"] = dt1;
ViewState["CurrentTable"] = dt1;
grvList.DataSource = dt1;
grvList.DataBind();
我尝试了这种方法,但它肯定只会检查最后选定的项目,而不会检查已经插入的其他行
if (grvList.Rows.Count > 0)
{
foreach (GridViewRow gr in grvList.Rows)
{
accessorucheck = ((Label)gr.FindControl("txtAccessories")).Text;
if (accessorucheck == drpAccessories.Text)
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation1", "<script language='javascript'>alert('Accessory Alredy Added, Please change the condition if needed.')</script>");
}
else
{
if (Session["dtInSession"] != null)
dt1 = (DataTable)Session["dtInSession"];
DataRow dr = dt1.NewRow();
dr["AccessoryName"] = drpAccessories.SelectedItem;
dr["ConditionName"] = drpConditions.SelectedItem;
dt1.Rows.Add(dr);
Session["dtInSession"] = dt1;
grvList.DataSource = dt1;
grvList.DataBind();
}
}
}
if(grvList.Rows.Count>0)
{
foreach(grvList.Rows中的GridViewRow gr)
{
accessorucheck=((标签)gr.FindControl(“txtAccessories”)).Text;
if(accessorucheck==drpAccessories.Text)
{
ClientScript.RegisterStartupScript(Page.GetType(),“validation1”,“警报('已添加附件,如果需要,请更改条件');
}
其他的
{
如果(会话[“dtInSession”]!=null)
dt1=(数据表)会话[“dtInSession”];
DataRow dr=dt1.NewRow();
dr[“AccessoryName”]=drpacAccessories.SelectedItem;
dr[“ConditionName”]=drpConditions.SelectedItem;
dt1.Rows.Add(dr);
会话[“dtInSession”]=dt1;
grvList.DataSource=dt1;
grvList.DataBind();
}
}
}
您可以使用DataView.ToTable
您可以按照上面提到的ihtsham的方法,但是最终仍然会插入一条记录,然后再次忽略,这会增加不必要的开销 我更希望在从会话变量获取datatable之后,使用
select
命令检查是否存在这样的行。你可以使用类似的东西,不要认为语法是完美的,因为我的ASP.Net已经生锈了,但它应该让你走上正轨
if (dt2.Select("AccessoryName = 'Var' AND ConditionName = 'Var2'").Rows.Count == 0)
{
//Insert code here
}
else
{
//Code to execute when duplicate added
}
它只会帮助您显示distinct,而在插入时不会显示任何错误消息。谢谢ihtsham。现在正在使用您的代码。非常感谢你的帮助。
if (dt2.Select("AccessoryName = 'Var' AND ConditionName = 'Var2'").Rows.Count == 0)
{
//Insert code here
}
else
{
//Code to execute when duplicate added
}