2013-02-07 36 views
0

我目前有一个ASP.NET WebService1.asmx根据参数选择WebService的最有效方法

这使用SqlConnection与Sql Server交谈。

我现在创建了WebServiceDB2.asmx,它使用OdbcConnection

我将从前端传入一个参数来确定我使用的服务。

因此,举例来说,在这背后的代码是我会怎样做一个普通的web服务呼叫 -

protected void deleteButton_Click(object sender, EventArgs e) 
    { 
     WebService1 ws = new WebService1(); 
     ws.deleteTerm(term); 
    } 

我的问题的存在是有实现比这DB2通话的选项的更有效的方法 -

protected void deleteButton_Click(object sender, EventArgs e) 
    { 
     if(parameter == "SQL") 
     { 
      WebService1 ws = new WebService1(); 
      ws.deleteTerm(term); 
     } 
     if(parameter == "DB2") 
     { 
      WebServiceDB2 ws = new WebServiceDB2(); 
      ws.deleteTerm(term); 
     } 
    } 

因为这会使我的代码增加一倍,并且我会定期在网站的所有页面上进行Web服务调用。

+1

旁白:创建一个新的服务时,为什么不使用WCF? ASMX服务已弃用。 –

+0

如果这些服务提供相同的操作,那么保留只有一个服务将参数传递到数据库操作层(在哪里使用适当的连接)是不是更好? –

+0

SQL服务器和DB2的唯一不同是SQL,因此我被困在一个具有不同方法的web服务或两个具有不同调用的web服务中。 – Ebikeneser

回答

0

您可以在项目中的一个方法中提取此检查,该方法也为服务器提供参数。

public void DeleteTerm(string term, string Server) 
{ 
    if(Server == "SQL") 
    { 
     WebService1 ws = new WebService1(); 
     ws.deleteTerm(term); 
    } 
    if(Server == "DB2") 
    { 
     WebServiceDB2 ws = new WebServiceDB2(); 
     ws.deleteTerm(term); 
    } 
} 

后来的后来,你可以这样调用它:

protected void deleteButton_Click(object sender, EventArgs e) 
{ 
    DeleteTerm(term,paramter);//where parameter is your class level variable. 
} 
相关问题