gridview中检索出一条符合条件的记录,但一点修改,就显示了整个表,而且也不是我要修改的那一行了。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gridview中检索出一条符合条件的记录,但一点修改,就显示了整个表,而且也不是我要修改的那一行了。相关的知识,希望对你有一定的参考价值。

我要修改检索出来的第二行,结果就跑到了整张表的第二行...
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)


string cell0 = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString().Trim();
string cell1 = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString().Trim();
string cell2 = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString().Trim();
string cell3 = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString().Trim();
string cell4 = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString().Trim();
string cell5 = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString().Trim();

SqlConnection cn = new SqlConnection("Data source=.\\SQLEXPRESS;Initial Catalog=FARM_2010;uid=sa;pwd=cyj;");
//打开连接
cn.Open();
SqlCommand cmd = new SqlCommand("update TeacherSet set Come_Performance='" + cell0 + "',Notes='" + cell1 + "',Works='" + cell2 + "',Process_Able='" + cell3 + "',KaoHeChenJi='" + cell4 + "' where Student_Id=" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "", cn);

SqlDataReader dr = cmd.ExecuteReader();

GridView1.DataSource = dr;

在事件里面写上E。RowIndex就可以得到当前行了,其实,你可以在gridview里点击控件的时候 传ID到后台的。 参考技术A e.RowIndex-1才行,因为你的表头也占了一行

如何取得left join的第二表中符合条件的第一条记录?

有表一 tableA
tid username title
1 lily 我公司将进行xx培训
2 angus 关于秋游的通知
3 boss 这个月不发奖金
4 vivi 新产品上市
表二 tableB
tid time txt
1 0809 大家快来。。。。
2 0810 我是新来的,大家好
2 0810 我知道你是新来的。。。
4 0811 价格太贵啦。。。

我想取得相同tid下的tableA的title跟对应的tableB中符合条件的第一条txt记录结合起来使用
我用以下语句达不到效果
SELECT tableA.*, tableB.txt FROM tableA LEFT JOIN tableB ON tableA.tid = tableB.tid ORDER BY tableB.time DESC

注意:上面的tableB中有两条tid为2的记录,那么按我的要求只有前一条被提取。请高手帮忙
用是MYSQL
用left join 没问题,问题是当tableB中符合ON条件的项超过一项时,该如何实现只取第一条去与tableA匹配

参考技术A 不知道怎么产生的问题,ORACLE里面是不会取不到的。。
另外LEFT JOIN会把A中有B中没有的也全部显示出来啊,B没的字段用NULL表示。
你用的什么数据库,MSSQL的话是不是表A,B里面字段有text类型引起的~瞎猜了。
参考技术B text类型真是强大啊引起无数问题- -我打死都不用他

以上是关于gridview中检索出一条符合条件的记录,但一点修改,就显示了整个表,而且也不是我要修改的那一行了。的主要内容,如果未能解决你的问题,请参考以下文章

如何取得left join的第二表中符合条件的第一条记录?

取得left join的第二表中符合条件的第一条记录

mysql 查询符合条件的 最后一条

SQL Server基础操作(此随笔仅作为本人学习进度记录九!--游标)

MS-Access 2007:查询与至少有一条记录符合指定条件的个人相关的所有记录

thinkphp3.2.3 查询时使用where+select查询出来的比find查询多一个空数组