一丶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 ...
随机推荐
- 安装Tomcat(windows系统和linux系统)
Tomcat不管是windows还是Linux版本,都是解压后就再配置一下就可以使用.安装Tomcat前必须先安装JDK,一般我们可以在eclipse中加入Tomcat来开发. 什么是Tomcat? ...
- View Controller Programming Guide for iOS---(七)---Resizing the View Controller’s Views
Resizing the View Controller’s Views A view controller owns its own view and manages the view’s cont ...
- 008--linux 基础之网络配置和ssh服务
一.linux网络配置 ifconfig eno16777736 192.168.19.48/24 | eno16777736(网卡名) 192.168.19.48/24(临时IP地址) ...
- Vue-i18n实现语言切换
方法1 Vue — i18n 国际化 全局配置 安 装 1.直接引入js文件 <script src="https://unpkg.com/vue/dist/vue.js"& ...
- BestCoder Round #74 (div.1) 1002Shortest Path(hdoj5636)
哈哈哈哈,我就知道这道题目再扔给我,我还是不会,就是这么菜,哈哈哈 一开始官方题解就没搞懂-然后就看了一下别人的代码,水水过就算了.今天拿到-GG: 题意: 一开始,有一张原图,有一条长度为n的链. ...
- hdu6201 transaction transaction transaction(from 2017 ACM/ICPC Asia Regional Shenyang Online)
最开始一直想着最短路,不过看完题解后,才知道可以做成最长路.唉,还是太菜了. 先上图: 只要自己添加两个点,然后如此图般求最长路即可,emmm,用SPFA可以,迪杰斯特拉也可以,或者别的都ok,只要通 ...
- UVa 1220 Party at Hali-Bula 晚会
#include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #i ...
- 二分查找 2015百度之星初赛1 HDOJ 5246 超级赛亚ACMer
题目传送门 /* 二分找到不大于m的最大的数,记做p,只要a[p] + k <= a[p+1]就继续 注意:特判一下当没有比m小的数的情况:) */ #include <cstdio> ...
- pkill 和 pgrep总结
查看进程ID和方便kill进程 pgrep -d 指定分隔符 pgrep -d ' ' -u root 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 -u p ...
- RHEL 6.5----rsync+inotify数据同步服务
Rsync特性: 可以镜像保存整个目录树和文件系统: 可以保持原文件的权限.时间.软硬链接等: 安装简单. 传输特点: 速度快:rsync首次同步会复制同步全部内容,以后只传输修改过的文件: 压缩传输 ...