一丶webservice执行存储过程
返回值组合:
json返回
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append("\"Status\":\"" + 123 + "\"");
sb.Append("}");
json数组
StringBuilder sb = new StringBuilder();
sb.Append("[");
for (int i = ; i < ; i++)
{
sb.Append("{");
sb.Append("\"name\":\"" + i + "\",");
sb.Append("\"name1\":\"" + (i+) + "\"");
sb.Append("},");
}
sb.Remove(sb.ToString().LastIndexOf(','), );
sb.Append("]");
案例1:
public void GetClass(string name, string id)
{
try
{
string connectString = System.Configuration.ConfigurationSettings.AppSettings["connStr"];
SqlConnection conn = new SqlConnection(connectString);
conn.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = "PROC_ChoicePersonnel";
comm.CommandType = System.Data.CommandType.StoredProcedure;
//传值以及赋值
SqlParameter[] sps = new SqlParameter[] {
new SqlParameter("@ClassName",name),
new SqlParameter("@id",id),
new SqlParameter("@flag","class")
};
comm.Parameters.AddRange(sps); SqlDataAdapter sdap = new SqlDataAdapter();
sdap.SelectCommand = comm;
DataTable dt = new DataTable();
sdap.Fill(dt);
conn.Close();
StringBuilder sb = new StringBuilder();
sb.Append("[");
for (int i = ; i < dt.Rows.Count; i++)
{
sb.Append("{");
sb.Append("\"id\":\"" + dt.Rows[i]["id"].ToString() + "\",");
sb.Append("\"name\":\"" + dt.Rows[i]["name"].ToString() + "\"");
sb.Append("},");
}
sb.Remove(sb.ToString().LastIndexOf(','), );
sb.Append("]");
Result(sb);
}
catch (Exception ex)
{ }
} private void Result(StringBuilder sb)
{
Context.Response.Charset = "UTF-8"; //设置字符集类型
Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Context.Response.ContentType = "text/plain";
Context.Response.Write(sb.ToString());
Context.Response.End();
}
C#后台调用HTTP外网接口
1.get方法调用接口获取json文件内容
public void GetFunction()
{ string serviceAddress = "http://...?aaa=111";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
Response.Write(retString);
}
2.post方法调用接口获取json文件内容
public void PostFunction()
{ string serviceAddress = "http://...";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); request.Method = "POST";
request.ContentType = "application/json";
string strContent = @"{ ""a"": ""1"",""b"": ""2"",""c"": ""3""}";
using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
{
dataStream.Write(strContent);
dataStream.Close();
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string encoding = response.ContentEncoding;
if (encoding == null || encoding.Length < )
{
encoding = "UTF-8"; //默认编码
}
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
string retString = reader.ReadToEnd();
//解析josn
JObject jo = JObject.Parse(retString);
Response.Write(jo["message"]["mmmm"].ToString()); }
3.
[WebMethod]
public void tt()
{
//地址
string url = "http://...";
string a = "";
string b = "";
string c = "";
string d = "";
//传的参数
//string datastr1 = "id=" + System.Web.HttpUtility.UrlEncode(ids);
string datastr1 = "a=" + a + "&b=" + b + "&c=" + c + "&d=" + d+ "&e=";
//转成字节
byte[] bytearray1 = Encoding.UTF8.GetBytes(datastr1);
//创建WebRequest
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url);
//POST方式
webrequest.Method = "POST";
// <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
webrequest.ContentType = "application/x-www-form-urlencoded";
//获取字节数
webrequest.ContentLength = Encoding.UTF8.GetByteCount(datastr1);
//获取用于写入请求数据的 System.IO.Stream 对象
Stream webstream = webrequest.GetRequestStream();
//向当前流中写入字节序列,并将此流中的当前位置提升写入的字节数。
webstream.Write(bytearray1, , bytearray1.Length);
//获取返回数据
HttpWebResponse response = (HttpWebResponse)webrequest.GetResponse();
//转码
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
//返回的结果
string ret = sr.ReadToEnd();
}
一丶webservice执行存储过程的更多相关文章
- Dapper完美兼容Oracle,执行存储过程,并返回结果集。
Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合 ...
- JAVA使用JDBC技术操作SqlServer数据库执行存储过程
Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...
- Oracle中执行存储过程call和exec区别
Oracle中执行存储过程call和exec区别 在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是e ...
- C#获取执行存储过程的" 返回值"代码
以下是C#代码: /// <summary> /// 执行存储过程,返回" 返回值" /// </summary> /// <param name=& ...
- C#执行存储过程的简化
下面的方法是我在实际开发中摸索出来的,可以在很大程度上简化调用存储过程的代码. 首先来看一下C#调用存储过程的一般过程:1.打开数据库连接SqlConnection:2.生成一个SqlCommand: ...
- MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程
1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150: 330 ...
- 原生jdbc执行存储过程
//定时任务,结转 . //表名 fys_sch_lvyou2 ,存储过程名:fys_sch_lvyou2_carrayover //无参调用:{call insertLine} //有参调用:{ca ...
- 0327定时执行--存储过程--dbms_job--dbms_scheduler.create_job
--oracle job 定时执行 存储过程 --建一张测试表 create table Person( name ), sex ) ); / --创建测试的存储过程 create or replac ...
- EF中执行存储过程,获取output返回值
EF不能直接支持执行存储过程,于是使用转化成执行SQL语句的形式,却怎么也获取不到output的值,折腾的好久,终于解决了,分享下曲折的经历: public int AddVote(int title ...
随机推荐
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 10. 使用EF Core
支持的数据库:可以查看官方网站 https://docs.microsoft.com/en-us/ef/core/providers/ 安装了VS2017后会安装了LocalDB,验证localDB ...
- 关于国债的一些计算: 理论TF价格2(缴款日前有付息)
计算 ExpectedTFPrice 是一个比较复杂的计算,我们这里讨论复杂的一种情况. 给定一只可交割国债bond(一般为CTD),一个国债期货tf, 在t日(表示tf的一个交易日期,我们通过bon ...
- poj 2492 A Bug's Life【带权并查集】
就是给一个无向图判是否有奇环 用带权并查集来做,边权1表示连接的两个节点异性,否则同性,在%2意义下进行加法运算即可,最后判相同的时候也要%2,因为可能有负数 #include<iostream ...
- 5.replace的用法,while循环,continue
1.relace s='dadk12' print(s.replace('生活','dd'))==打印返回dadk12,即使没有也不会报错. 2.while continue while循环输出 1 ...
- C#解决窗体全屏遮住任务栏
this.MaximizedBounds = Screen.PrimaryScreen.WorkingArea; 在初始话后添加这个即可实现,...............
- pyinstaller模块
应用场景: 1 把一些python脚本推广到更多机器上运行,但无法保证他们都有安装python解释器,所以,打包可以免去这一障碍 win: 安装: 在cmd中运行pip install pyinsta ...
- 《统计学习方法》笔记三 k近邻法
本系列笔记内容参考来源为李航<统计学习方法> k近邻是一种基本分类与回归方法,书中只讨论分类情况.输入为实例的特征向量,输出为实例的类别.k值的选择.距离度量及分类决策规则是k近邻法的三个 ...
- JSP分页技术的实现(利用当前页进行前后加减,并利用href进行当前页面传值,传值当然是那个当前值变量)
一.可滚动结果集 Connection con = DriverManager.getConnection(); PreparedStatement stmt = con.prepareStat ...
- rhel6.5--http练习
包名 简介 httpd-2.2.15-29.el6_4.x86_64.rpm http服务的主程序包 httpd-devel-2.2.15-29.el6_4.x86_64.rpm ap ...
- json字符串和字典类型的相互转换
在开发过程中,有时候需要将json字符串转为字典类型,反之亦然,通常采用.Net的开源类库Newtonsoft.Json进行序列化,这里我也是采用这个,不过我更喜欢写扩展方法方便在项目的调用. 首先新 ...