通过WCF执行自定义SQL查询
我使用ORACLE和SQL Server的WCF服务。 然后我需要“通用”解决方案。
我需要构建一个WCF方法来实质上执行自定义SQL字符串并返回读者结果。
这不是一个很好的做法,可能是最好的避免,它有点打破了WCF服务的重点,但在我的情况下,这需要做。
我不希望WCF数据服务既不能用于其他技术或协议。
只有WCF服务(SOAP)。
关于它的任何好的做法?
也许List<List>
返回值需要改进。
SQL Server的源代码。 对于Oracle来说也是如此。
[OperationContract] List<List> executeSQL(string sql, bool returnExpected); public List<List> executeSQL(string sql, bool returnExpected) { List<List> toReturn = new List<List>(); using (SqlConnection con = new SqlConnection(YourConnectionString)) { con.Open(); SqlCommand cmd = con.CreateCommand(); cmd.CommandText = sql; if (returnExpected == true) { using (SqlDataReader sqlReader = cmd.ExecuteReader()) { if (sqlReader != null) { if (sqlReader.HasRows) { while (sqlReader.Read()) { List innerList = new List(); for (int i = 0; i < sqlReader.FieldCount; i++) { innerList.Add(sqlReader[i].ToString()); } toReturn.Add(innerList); } con.Close(); } } } } else { // We execute without reader cmd.ExecuteNonQuery(); } } return toReturn; }
定义运营合同
[OperationContract] string executeSQL(string sql, bool returnExpected);
将列表转换为json字符串
return Newtonsoft.Json.JsonConvert.SerializeObject(YourResultList);
将json字符串解析为object
上述就是C#学习教程:通过WCF执行自定义SQL查询分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
var res = (YourClass)Newtonsoft.Json.JsonConvert.DeserializeObject(s, typeof(YourClass));
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1000293.html