现在有两个数据库DB1和DB2。其中DB1中有表USER,DB2中有表Record,两个表中都包含字段UserName。
现要根据DB1中User表中UserName的记录,逐个查找其在DB2中Record中的记录个数。应该怎样做?
注:我用的是C# oledb。我尝试先读出DB1里UserName中的各个记录,并用此为条件再从DB2中查找。但这样速度非常慢。

解决方案 »

  1.   

    你可以在DB1中建一个视图映射到DB2的Record表,然后用一句sql
    select a.UserName,count(b.recordid) as total 
    from User as a,Record as b
    where a.UserName = b.UserName
    group by a.UserName
      

  2.   

    不会很慢吧,你先定义个变量,把读出的值赋给这个变量,再给DB2中的查询语句添加参数不就行了
    我今天做的这个跟你相似,挺快的呀
     string insertCommand = "insert into MessageBoard(userName,Theme,MBTime,Message,Email,sex,liking) values(@userName,@Theme,@MBTime,@Message,@Email,@sex,@liking)";
    SqlCommand cmd = new SqlCommand(insertCommand,conn);
            cmd.Parameters.Add("@userName", SqlDbType.NVarChar, 10).Value = userName;
            cmd.Parameters.Add("@Theme", SqlDbType.NVarChar, 20).Value = Theme;
            cmd.Parameters.Add("@MBTime", SqlDbType.NVarChar, 50).Value = MBTime;
            cmd.Parameters.Add("@Message", SqlDbType.NVarChar, 80).Value = Message;
            cmd.Parameters.Add("@Email", SqlDbType.NVarChar, 50).Value = Email;
            cmd.Parameters.Add("@sex", SqlDbType.Char, 2).Value = sex;
            cmd.Parameters.Add("@liking", SqlDbType.NVarChar, 50).Value = liking;