C# 我的查询允许我扩展SELECT语句吗
在我的SOAP服务中,我目前通过C# 我的查询允许我扩展SELECT语句吗,c#,asp.net,oracle,soap,C#,Asp.net,Oracle,Soap,在我的SOAP服务中,我目前通过ID(A_KONTO)进行搜索,现在我想修改这个查询,我也可以通过城市、地址或姓名(无论什么)进行搜索 在这种情况下,如果我按城市搜索,它需要以XML格式返回我的db中所有城市的列表 [WebMethod] public string GetAkontasById(string Id) { OracleConnection conn = new OracleConnection("DATA SOURCE=te
ID(A_KONTO)
进行搜索,现在我想修改这个查询,我也可以通过城市、地址或姓名(无论什么)进行搜索
在这种情况下,如果我按城市搜索,它需要以XML格式返回我的db
中所有城市的列表
[WebMethod]
public string GetAkontasById(string Id)
{
OracleConnection conn = new OracleConnection("DATA SOURCE=test-1:1521/test;USER ID=testuser;PASSWORD=test123");
OracleDataAdapter dr = new OracleDataAdapter("Select * from AKONTAS where A_KONTO='" + Id + "'", conn);
DataSet ds = new DataSet();
ds.Tables.Add("AKONTAS");
dr.Fill(ds, "AKONTAS");
DataTable tt = ds.Tables[0];
return ds.GetXml();
}
所以,如果我输入newyork,它需要返回所有数据的XML,纽约在哪里
像这样的
<string xmlns="http://tempuri.org/">
<NewDataSet><AKONTAS>
<A_KONTO>123456</A_KONTO>
<NAME>Test123 </NAME>
<ADDRESS>Test123</ADDRESS>
<CITY>New York</CITY>
</AKONTAS> </NewDataSet>
<NewDataSet><AKONTAS>
<A_KONTO>547896</A_KONTO>
<NAME>sadadsa </NAME>
<ADDRESS>babab </ADDRESS>
<CITY>New York</CITY>
</AKONTAS> </NewDataSet>
<NewDataSet><AKONTAS>
<A_KONTO>313365</A_KONTO>
<NAME>teea</NAME>
<ADDRESS>hahhd</ADDRESS>
<CITY>New York</CITY>
</AKONTAS> </NewDataSet>
<NewDataSet><AKONTAS>
<A_KONTO>541223</A_KONTO>
<NAME>dasasd</NAME>
<ADDRESS>hsahdkjah</ADDRESS>
<CITY>New York</CITY>
</AKONTAS> </NewDataSet>
</string>
123456
测试123
测试123
纽约
547896
萨达萨
巴巴布
纽约
313365
蒂亚
哈哈哈
纽约
541223
达萨德
希沙德加
纽约
如果要搜索特定文本,可以使用LIKE条件
Select * from AKONTAS where A_KONTO LIKE '%"+Id+"%' OR NAME LIKE '%"+name+"%' OR ADDRESS LIKE '%"+address+"%' OR CITY LIKE '%"+city+"%'
你有一个名为
GetAkontas*ById*
的方法,你想扩展它。。。你应该考虑重命名它,你为什么不创建一个新的命名为<代码> SexChaKONAS(String SeaCURTION)< /COD>?您的方法名称应该始终按照它们所说的做。如果方法名表示它获取具有特定Id的内容,则它不应执行不同的操作。是的,您是对的。我有一个名为GetAkontasById的方法,我想对其进行扩展,使其能够按城市、姓名或地址进行搜索。我可以像GetAkontas一样重命名这个方法,因为表名是Akontas。我也是这样想的,但我的团队负责人想在一个函数中进行扩展,因为我尝试了所有事情,总是得到空的xml文件,只是检查了实际的SQL。。。你的问题很严重。检查HAAHAHAH,我检查了,但我总是得到空的XML OracleDataAdapter dr=new OracleDataAdapter(“从AKONTAS中选择*,其中MJESTO='“+MJESTO+'”,conn);你应该使用绑定参数,而不是连接字符串。我总是建议使用参数化查询,不允许SQL注入攻击。检查这个@bradbury9有趣的工作人员,但对我来说也不起作用。我使用了类似以下的命令OracleCommand OracleCommand=new OracleCommand(“从AKONTAS中选择MJESTO,其中MJESTO=:MJESTO”康涅狄格州);添加(新的OracleParameter(“Mjesto”,oraCommand));你没有名为“MJESTO”的专栏,对吗?你说你的专栏里有“A_KONTO,姓名,地址,城市”是的,我在db MJESTO有专栏
Select * from AKONTAS where A_KONTO LIKE '%"+Id+"%' OR NAME LIKE '%"+name+"%' OR ADDRESS LIKE '%"+address+"%' OR CITY LIKE '%"+city+"%'