主题:[讨论]如何获取数据库的行
cky726
[专家分:50] 发布于 2005-11-03 16:51:00
楼主说:
用DataGrid可以显示SQL的表,
如果DataGrid显示的是表的两三行内容,(比如,它显示的是所有同姓名的数据)
请问,DataGrid显示的数据(以行为算)在SQL中的什么位置(为行为算),
如何表达出来,只想知道它们在SQL中对应于哪一行。
ryowu说:
sql-svr中没有行号的概念……都是按顺序读出的
楼主又说:
请问
怎样确定DataGrid数据在SQL中的什么位置?
目的是在DataGrid中修改数据后,保存回SQL
回复列表 (共6个回复)
沙发
zergvb [专家分:780] 发布于 2005-11-03 17:12:00
SQL,没有行号的,保存也用不着行号
板凳
cky726 [专家分:50] 发布于 2005-11-03 17:25:00
SQL修改语句是用UPDATA
那请问大师,怎样找到它的位置并且修改呢?
3 楼
zergvb [专家分:780] 发布于 2005-11-03 19:17:00
我也是新手,呵呵
你可以用SQL语句找符合条件的行,然后修改就可以拉
4 楼
williambolice [专家分:470] 发布于 2005-11-03 22:08:00
表本身就有个主键的概念,通过主键绑定到datagrid,然后update时update set a=@a where id=@id,通过你的修改连接列的连接控件来一个request的string得到id即可定位到表中的那一行
5 楼
cky726 [专家分:50] 发布于 2005-11-04 08:02:00
可以说得明白一点吗,好像不是很了解,通过主键绑定到datagrid怎么来啊
谢谢了
6 楼
williambolice [专家分:470] 发布于 2005-11-04 10:38:00
假如不是流水帐的话,你建立的表应该有一个主键,比如员工表的员工号,你可以把员工表的数据用select * from staff绑定到ds然后绑定到datagrid,datagrid是没有id概念的,它只是按表的动态查询顺序绑定在上面,此时数据显示了,你就可以在其属性上设置多一个链接列,比如你要修改某条信息,加个修改链接控件,datagrid的每列都会产生一个修改控件,当你点击时比如此时是员工张三,其工号0003,你点击该记录的修改,及可以链接到你的另一个修改页面,在点击时网页会请求,这就是Request.QueryString ,你在修改页面可以初始化写上
SqlCommand cm=new SqlCommand ("select * from staff where id=@id",cn);
cm.Parameters .Add ("@id",SqlDbType.BigInt );
cm.Parameters ["@id"].Value =Request.QueryString ["id"].ToString ();
SqlDataReader dr=cm.ExecuteReader ();
if(dr.Read ())
{
TextBox1.Text=dr["staff_id"].ToString ().Trim();
我来回复