我有个小问题,困扰很久了,你看看,谢谢先!ADO中Recordset给某个纪录的某个字段赋值可以用下面的方法:
rs.Fields("name") = "jokesmith" 
或者 rs.Fields(0) = "jokesmith" 等等,我的问题是,rs中有两个field是同名的(如:employee.name和customer.name),我现在要对employee.name赋值怎么做?
这些是不行的:rs.Fileds("employee.name") = "jokesmith"
              rs.Fileds(employee!name) = "jokesmith"我只好用一个笨办法:
   For Each fld In rs.Fields
     If fld.name = "name" And fld.Properties("BASETABLENAME") = "employee" then
        fld.value = "jokesmith"
        Exit For
     End If
  Next可是,这样当字段比较多的时候就影响效率了,我想一定有简单的方法,请指教。

解决方案 »

  1.   

    如果是SQL2000
    你可以使用视图方法,用别名可以实现。
      

  2.   

    真没搞懂你说什么, 你的二个同名字段肯定是从二个表取出来的,其实你有二个办法:
    1. 在取的时候就区分字段,  用select employee.name as name1,customer.name as name2
    的形式
    2.你可以用rs.fields(index)的方式, 因为字段名相同, 但index不同
      

  3.   

    这是设计思路有问题~~~recordset应该避免使用相同的字段名,用楼上的方法指定别名来区别。
      

  4.   

    SELECT 的时候就用别名
    然后addnew,update
      

  5.   

    在创建rs记录集的时候,select 语句上加上别名不就行了吗。
      

  6.   

    可能使我没说清楚,问题没这么简单啊。
    这是在一个中间服务器的代码,用别名能解决这个问题,但会影响其它的地方,比如,不能用别名作order by. 如果没有简单的方法,我宁愿用循环也不用别名。
      

  7.   

    别名作order by吗?
    为什么我行
      

  8.   

    你用SQL
    select employee.name,customer.name from employee join customer on customer.id=employee.id 你就用
    rs.Fields(0) =text1.text
    rs.fields(1)=text2.text
    就样就可以了
      

  9.   

    用别名作order by 可以呀
      

  10.   

    To 回复人: cyliao(.NET) ( ) 信誉:100  2003-09-16 17:09:00  得分:0 
     
     
      用别名作order by 可以呀
      
     
    -----------------------------------------------
    我指SQL Server。试试再说好吗?
      

  11.   

    别名order by在SQL Sever查询分析器里可以,但用rs.open好像不行啊。
      

  12.   

    To 回复人: ufozq77(ZQ)
    你这个办法本来可以,但在我这里不行,因为我做的是中间数据服务器,如果有人用SELECT *我就没法知道"name"的index了(但我知道是那个表的"name")
      

  13.   

    另外,对不起以上几位,特别是 cyliao(.NET)!Order By是可以的,我昏了——其实我一直想说的是WHERE 子句。希望大家知无不言啊。
      

  14.   

    别名当然不可以order by,
    order by要用数据库实际的字段名啊~~select table1.name as name1, table2.name as name2
    order by table1.name就这样就可以啊~~~
      

  15.   

    1. 在取的时候就区分字段,  用select employee.name as name1,customer.name as name2
    的形式
    2.你可以用rs.fields(index)的方式, 因为字段名相同, 但index不同