Well, you could use different names:
public int searchDB1 (int id)
{
search in data base1
}
public int searchDB2 (int id)
{
search in data base2
}
Or you could have one method, and pass the database to it:
public int search (int id, SqlConnection con)
{
search in data base
}
It really depends on what you are trying to do, and why.
For example, it might be worth passing the appropriate Search method as a delegate parameter to the calling method:
public void DoSomethingIncludingSearch(Func<int> search)
{
...
search(userId);
...
}
And then call it with the appropriate method:
public void DoSomething()
{
...
DoSomethingIncludingSearch(searchDB1);
...
DoSomethingIncludingSearch(searchDB2);
}