回 帖 发 新 帖 刷新版面

主题:[讨论]如何获取数据库的行

楼主说:
用DataGrid可以显示SQL的表,
如果DataGrid显示的是表的两三行内容,(比如,它显示的是所有同姓名的数据)
请问,DataGrid显示的数据(以行为算)在SQL中的什么位置(为行为算),
如何表达出来,只想知道它们在SQL中对应于哪一行。



ryowu说:
sql-svr中没有行号的概念……都是按顺序读出的  


楼主又说:
请问
怎样确定DataGrid数据在SQL中的什么位置?
目的是在DataGrid中修改数据后,保存回SQL

回复列表 (共6个回复)

沙发

SQL,没有行号的,保存也用不着行号

板凳

SQL修改语句是用UPDATA

那请问大师,怎样找到它的位置并且修改呢?

3 楼

我也是新手,呵呵
你可以用SQL语句找符合条件的行,然后修改就可以拉

4 楼

表本身就有个主键的概念,通过主键绑定到datagrid,然后update时update set a=@a  where id=@id,通过你的修改连接列的连接控件来一个request的string得到id即可定位到表中的那一行

5 楼

可以说得明白一点吗,好像不是很了解,通过主键绑定到datagrid怎么来啊
谢谢了

6 楼

假如不是流水帐的话,你建立的表应该有一个主键,比如员工表的员工号,你可以把员工表的数据用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();

我来回复

您尚未登录,请登录后再回复。点此登录或注册