GridView重复显示数据?

yetianbiao 2008-12-29 03:41:55
我无论在查询主表的时候,或者是点击主表显示从表的时候,gridview显示出来的为什么每条数据都会一样的重复显示两遍啊?很奇怪啊~有谁能帮帮我吗?下面是代码,gridview3是连主表的,gridview1是连从表的:


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

public void xsd()
{

string SQL = "SELECT * FROM [xsd]";
GridView3.DataSource = Binding(SQL);
GridView3.DataKeyNames = new string[]{ "xs_no"};
GridView3.DataBind();
GridView1.Visible = false;

}


public void xsd_mx()
{

string strSql;
string myStc = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection conn = new SqlConnection(myStc);
conn.Open();

strSql = "select * from xsd_zc";
SqlDataAdapter adp = new SqlDataAdapter(strSql, conn);
DataSet ds = new DataSet();
adp.Fill(ds, "xsd_zc");
GridView1.DataSource = ds.Tables["xsd_zc"].DefaultView;
GridView1.DataBind();
}

protected void cerBtn_Click(object sender, EventArgs e)
{
TextBox1.Text = "";
GridView1.Visible = false;
}

protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e)
{

}
protected void GridView3_SelectedIndexChanged(object sender, EventArgs e)
{

string xs_no = Convert.ToString(GridView3.SelectedValue);
string SQL = "SELECT * FROM [xsd_zc] WHERE [xs_no]='" +xs_no+ "'";
GridView1.DataSource = Binding(SQL);
GridView1.DataBind();
GridView1.Visible = true;

}

protected DataTable Binding(string SQL)
{
string myStc = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection conn = new SqlConnection(myStc);
DataTable dt = new DataTable();
SqlDataAdapter myAdapter = new SqlDataAdapter(SQL,conn);
myAdapter.Fill(dt);
return dt;

}

protected void cxBtn_Click(object sender, EventArgs e)
{
GridView1.Visible = false;

string SQL;
if (TextBox1.Text =="" || TextBox1.Text=="全部")
SQL="SELECT * FROM [xsd]";
else
SQL = "SELECT * FROM [xsd] where xs_no='"+TextBox1.Text+"'";

GridView3.DataSource = Binding(SQL);
GridView3.DataKeyNames = new string[] { "xs_no" };
GridView3.DataBind();
}
protected void GridView3_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{

}

protected void GridView3_PageIndexChanging1(object sender, GridViewPageEventArgs e)
{
GridView3.PageIndex = e.NewPageIndex;
xsd();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
string xs_no = Convert.ToString(GridView3.SelectedValue);
string SQL = "SELECT * FROM [xsd_zc] WHERE [xs_no]='" + xs_no + "'";
GridView1.DataSource = Binding(SQL);
GridView1.DataBind();
GridView1.Visible = true;
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

}
protected void GridView3_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string myStc = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection sqlConnection1 = new SqlConnection(myStc);
string strSql,sql;
strSql = "Delete from xsd Where xs_no='" + GridView3.DataKeys[e.RowIndex].Value + "'";
sql = "Delete from xsd_zc Where xs_no='" + GridView3.DataKeys[e.RowIndex].Value + "'";
SqlCommand cmd = new SqlCommand(strSql, sqlConnection1);
SqlCommand cmd1 = new SqlCommand(sql, sqlConnection1);
try
{
sqlConnection1.Open();
cmd.ExecuteNonQuery();
cmd1.ExecuteNonQuery();
sqlConnection1.Close();
sqlConnection1.Dispose();

}
catch (SqlException)
{
Label1.Text = "发生错误,没有正常删除记录";
}
xsd();
}
protected void backBtn_Click(object sender, EventArgs e)
{
Response.Redirect("Default2.aspx");
}
}

...全文
768 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
junehsu 2009-08-28
  • 打赏
  • 举报
回复
终于问题解决了
strSql = "select distinct * from xsd_zc";
GridView1中选定的字段要与上面的相同问题就解决了。
我检查了自己的选定结果原来发现自己GridView1字段中少选了一个,将少选的补上问题解决了,终于可以睡一个好觉了啊。晚安。呵呵
junehsu 2009-08-28
  • 打赏
  • 举报
回复
我也遇到同样问题啊,兄弟们
duanjiwei 2009-06-26
  • 打赏
  • 举报
回复
是行重复啊,还是类重复啊、
。知道这个很重要啊。
俄德米 2009-06-26
  • 打赏
  • 举报
回复
就是把自动生成字段那个勾去掉就可以了!
俄德米 2009-06-26
  • 打赏
  • 举报
回复
八楼是对的!!我遇到这种情况,用哪种方法就好使了!谢谢了!
wxd024 2009-01-04
  • 打赏
  • 举报
回复
在"编辑列"中把"自动生成字段"前的对号去掉就可以啦
wxd024 2009-01-04
  • 打赏
  • 举报
回复
在"编辑列"中把"自动生成字段"前的对号去掉就可以啦
yetianbiao 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 kongxiangli 的回复:]
是你数据的问题
[/Quote]

数据的问题?为什么啊?能详细点吗?数据库里的数据本身是不重复的啊~
凋零的老树 2008-12-31
  • 打赏
  • 举报
回复
yetianbiao 2008-12-31
  • 打赏
  • 举报
回复
但 distinct 不能过滤text image 等字段类型的数据啊~
阿彪兄 2008-12-31
  • 打赏
  • 举报
回复
如果数据有重复就用distinct筛选过滤
yetianbiao 2008-12-31
  • 打赏
  • 举报
回复
是的~~数据库里是一条的~~
cwmwss 2008-12-30
  • 打赏
  • 举报
回复
用查询分析器查询的话~也会出现重复两条记录。。。。数据库里是一条的?
yetianbiao 2008-12-30
  • 打赏
  • 举报
回复
查询分析器里还是会显示出两条重复的~~但是语句上看起来没错啊
mengxj85 2008-12-30
  • 打赏
  • 举报
回复
最有可能是你的SQL语句问题,拿到查询分析器里测测
yetianbiao 2008-12-30
  • 打赏
  • 举报
回复
顶顶~~谁帮我再看看啊~~~~各位大哥~
yetianbiao 2008-12-30
  • 打赏
  • 举报
回复
用select distinct的话~正常是可以正常的,但是我数据库里面有text类型或image类型的~不能用这个来过滤啊~~

那个gridview里面我自动生成字段本来就没点上过的,自动增加列也是FALSE的~~


string xs_no = Convert.ToString(GridView3.SelectedValue);
string SQL = "SELECT * FROM [xsd_zc] WHERE [xs_no]='" + xs_no + "'";
GridView1.DataSource = Binding(SQL);
GridView1.DataBind();
GridView1.Visible = true;
写到PreRender事件里了还是一样的结果啊~

数据本身是没有重复的,用查询分析器查询的话~也会出现重复两条记录的~~难道只能用distinct?但是我数据库里面有text类型或image类型的啊
rgzazq 2008-12-29
  • 打赏
  • 举报
回复
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
string xs_no = Convert.ToString(GridView3.SelectedValue);
string SQL = "SELECT * FROM [xsd_zc] WHERE [xs_no]='" + xs_no + "'";
GridView1.DataSource = Binding(SQL);
GridView1.DataBind();
GridView1.Visible = true;
}
中的
string xs_no = Convert.ToString(GridView3.SelectedValue);
string SQL = "SELECT * FROM [xsd_zc] WHERE [xs_no]='" + xs_no + "'";
GridView1.DataSource = Binding(SQL);
GridView1.DataBind();
GridView1.Visible = true;
不要写在这里,写到PreRender事件中去
wangzhenyue 2008-12-29
  • 打赏
  • 举报
回复
将它点掉就可以了啊
wangzhenyue 2008-12-29
  • 打赏
  • 举报
回复
我知道了 。。看看你的GRIDVIEW中编辑它。。
看看下面是不是有个自动生成数据。。。
加载更多回复(10)

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧