删除 gridview 行中的重复值
Remove duplicate value in gridview rows
我以前看过这个问题的提问和回答,但 none 的答案对我有帮助。我希望当我通过按下按钮从文本框中插入一个值时,如果该值已经存在于要删除或根本不插入的 gridview 中。
我的代码:
protected void Buton1_Click(object sender, EventArgs e)
{
DataTable dt = null;
if (Session["GridData"] == null)
{
dt = new DataTable();
DataColumn dc = new DataColumn("Name");
dt.Columns.Add(dc);
}
else
{
dt = Session["GridData"] as DataTable;
}
DataRow dr = dt.NewRow();
dr["Name"] = TextBox1.Text;
dt.Rows.Add(dr);
dt.AcceptChanges();
GridView1.DataSource = dt;
GridView1.DataBind();
Session["GridData"] = dt;
}
最好先检查 table 中是否存在值,然后再将其插入 table。
var data = (from row in dt.AsEnumerable()
where row.Field<string>("Name") == TextBox1.Text
select row).ToList();
if(data != null && data.Count > 0)
{
//insert new row in table
}
或
var data = (from row in dt.AsEnumerable()
select row).
FirstODefault(row=>row.Field<string>
("Name") == TextBox1.Text);
if(data != null )
{
//insert new row in table
}
尝试在添加行之前检查重复项:
bool isDuplicate = false;
foreach (DataRow row in dt.Rows)
{
if (row["Name"] == TextBox1.Text)
{
isDuplicate = true;
break;
}
}
如果不重复就做你的事:
if (!isDuplicate)
{
DataRow dr = dt.NewRow();
dr["Name"] = TextBox1.Text;
dt.Rows.Add(dr);
dt.AcceptChanges();
GridView1.DataSource = dt;
GridView1.DataBind();
Session["GridData"] = dt;
}
所以你可以从 Sqlserver 端检查如果该值已经存在那么它不应该被插入我认为从 sql 端检查更好因为它比从代码后面检查花费更少的时间
喜欢
if not exists (select name from table where name=@name)
begin
insert into table values(name)values(@name)
end
我以前看过这个问题的提问和回答,但 none 的答案对我有帮助。我希望当我通过按下按钮从文本框中插入一个值时,如果该值已经存在于要删除或根本不插入的 gridview 中。
我的代码:
protected void Buton1_Click(object sender, EventArgs e)
{
DataTable dt = null;
if (Session["GridData"] == null)
{
dt = new DataTable();
DataColumn dc = new DataColumn("Name");
dt.Columns.Add(dc);
}
else
{
dt = Session["GridData"] as DataTable;
}
DataRow dr = dt.NewRow();
dr["Name"] = TextBox1.Text;
dt.Rows.Add(dr);
dt.AcceptChanges();
GridView1.DataSource = dt;
GridView1.DataBind();
Session["GridData"] = dt;
}
最好先检查 table 中是否存在值,然后再将其插入 table。
var data = (from row in dt.AsEnumerable()
where row.Field<string>("Name") == TextBox1.Text
select row).ToList();
if(data != null && data.Count > 0)
{
//insert new row in table
}
或
var data = (from row in dt.AsEnumerable()
select row).
FirstODefault(row=>row.Field<string>
("Name") == TextBox1.Text);
if(data != null )
{
//insert new row in table
}
尝试在添加行之前检查重复项:
bool isDuplicate = false;
foreach (DataRow row in dt.Rows)
{
if (row["Name"] == TextBox1.Text)
{
isDuplicate = true;
break;
}
}
如果不重复就做你的事:
if (!isDuplicate)
{
DataRow dr = dt.NewRow();
dr["Name"] = TextBox1.Text;
dt.Rows.Add(dr);
dt.AcceptChanges();
GridView1.DataSource = dt;
GridView1.DataBind();
Session["GridData"] = dt;
}
所以你可以从 Sqlserver 端检查如果该值已经存在那么它不应该被插入我认为从 sql 端检查更好因为它比从代码后面检查花费更少的时间
喜欢
if not exists (select name from table where name=@name)
begin
insert into table values(name)values(@name)
end