接口项目总结

  1. Environment.CurrentDirectory
    解释: 但会当前工作目录文件下,调试环境下Debug

    2.Httplistener类使用
    属性:isSupported检测当前系统是否支持,必须在xp sp2或者server2003

    通过new创建实例

添加监听IP,实例.Prefixes.Add(URL)

开启监听:实例.Start();
******在使用网络相关的时候注意使用try-catch*************
开启监听常见问题:拒绝访问
方案1. 如果是win7或者win8,在cmd.exe上右键,以管理员身份运行,然后执行下面的命令
netsh http add urlacl url=http://本机IP:1500/ user=用户名(如Administrator)
方案2:关闭防火墙
方案3:如果上述步骤还是解决不了问题的话.那么请右键-管理员运行vs,保准药到病除.注意,如果在win7,win8中生成的程序也要用管理员模式打开

left join 表1 on 表1.col=表2.col 左连接
(数据库中多条件连接) 可以不满足left join 的条件
(表1.col=’2’ or 表1.col=’3’) and …
inner join 内连接 ()必须满足inner join’ 的条件

在使用string.Format时.如果字符串本身的字段需要{ } 则需要使用{{ }}

使用Thread.Sleep(int time)
设置时间间隔

将字符串转换为字节数组
编码格式自定义
byte[] bs=Encoding.UTF8.GetBytes(str)

HttpWebRequest类
工厂 通过create创建
实例:HttpWebRequest request=(HttpWebRequest)HttpWebRequest.Create(URL)

设置传送方式
request.Method=”post” //get
设置语言格式
request.ContentType=”application/json”
设置长度
request.ContentLength=bs.length (传递字节数组)
//设置代理
request.Proxy=null;
//设置超时时间
request.TimeOut= number;
//设置自定义头部
request.Headers.Add(“str”,”str1”)
//写入流 主要方法 GetRequestStream
注意连接 using
using (Stream stream =request.GetRequestStream())
{
stream.Write(bs,0,bs.length);
}
//读取响应体
主要方法 GetResponse
实例

HttpWebResponse response=(HttpWebResponse) request.GetResponse();

//读取响应体内容
主要方法 GetResponseStream() 注意解码转码
注意关闭连接

using (StreamReader reader=new StreamReader(response.GetResponseStream(),Encoding.GetEncoding("UTF-8")))
{
 string responseData=reader.ReadToEnd();
}

发送回响应内容

  System.IO.Stream output = response.OutputStream;
                System.IO.StreamWriter writer = new System.IO.StreamWriter(output);
                writer.Write(nowData);
                // 必须关闭输出流
                writer.Close();

字符串是否包含 Contrains() 添加 insert (不修改原数据)

将json字符串转换为可使用的对象
方法: 1.创建类

 public class GetKey
    {

        public data Data { get; set; }
        public string code { get; set; }
        public class data
        {
            public string ID { get; set; }
            public string NAME { get; set; }
            public string KEY { get; set; }
        }

    }
其中 data Data 是包含在data中的,str为包含json的字符串
使用方法GetKey KeyModel=JsonConvert.DeserializeObject<GetKey>(str)
直接点出来可以使用

事务的执行
注意,其中必须为他们选定事务

 sda1.SelectCommand.CommandType = CommandType.Text;
                    sda1.SelectCommand.Transaction = trans;
            //为必加项,不然会报错

实例:

Sqlconnection cnn=new SqlConnection(str);
SqlCommand cm1;
            SqlCommand cm2;
            cnn.Open();
            DataTable dt1 = new DataTable();
            DataTable dt2 = new DataTable();

            string message;

            using (SqlTransaction trans = cnn.BeginTransaction())
            {
                try
                {
                    cm1 = new SqlCommand(sql1, cnn, trans);
                    //添加流程表数据
                    SqlDataAdapter sda1 = new SqlDataAdapter(cm1);
                    sda1.SelectCommand.CommandType = CommandType.Text;
                    sda1.SelectCommand.Transaction = trans;
                    sda1.Fill(dt1);
                    if (dt1.Rows.Count != 1)
                    {

                        trans.Rollback();
                    }
                    else
                    {
                        cm2 = new SqlCommand(sql2, cnn, trans);
                        message = dt1.Rows[0]["id"].ToString();
                        SqlDataAdapter sda2 = new SqlDataAdapter(cm2);
                        sda2.SelectCommand.CommandType = CommandType.Text;
                        sda2.SelectCommand.Transaction = trans;
                        sda2.Fill(dt2);
                        if (dt2.Rows.Count != 1 || dt2.Rows.Count == 0)
                        {

                            trans.Rollback();
                        }
                        else
                        {
                         trans.Commit();
                        }

                    }

                }
                catch (Exception ex)
                {
                    message = ex.Message + "sql语句1:" + sql1 + "   sql语句2:" + sql2;
                    trans.Rollback();
                }
                finally
                {
                    cnn.Close();
                    trans.Dispose();
                    cnn.Dispose();
                }
                return message;
            }

}

代码书写风格
先将异常情况先写完,在写正常情况
(正常情况数据量太大.写完忘记异常情况了)

线程池


Threadpool.QueueUserWorkItem(new WaitCallback(function),data)   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值