lch
2024-08-20 27ab93a470434571e1148a282ac4f513c640c0c9
添加项目文件。
已添加11个文件
1235 ■■■■■ 文件已修改
DBorl.cs 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Properties/AssemblyInfo.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SQLHelperClass.cs 604 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web.Debug.config 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web.Release.config 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web.config 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService1.asmx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService1.asmx.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebserviceGS.csproj 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebserviceGS.sln 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages.config 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DBorl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,203 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OracleClient;
using System.Linq;
using System.Web;
namespace WebserviceGS
{
    public class DBorl
    {
        public static string connectionString = "Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.3.21)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ORCL)));Persist Security Info=True;User Id = bgmes;Password=bg_mes";
        #region å…¬ç”¨æ–¹æ³•
        public static int GetMaxID(string FieldName, string TableName)
        {
            string strsql = "select max(" + FieldName + ")+1 from " + TableName;
            object obj = GetSingle(strsql);
            if (obj == null)
            {
                return 1;
            }
            else
            {
                return int.Parse(obj.ToString());
            }
        }
        public static bool Exists(string strSql)
        {
            object obj = GetSingle(strSql);
            int cmdresult;
            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
            {
                cmdresult = 0;
            }
            else
            {
                cmdresult = int.Parse(obj.ToString());
            }
            if (cmdresult == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        public static bool Exists(string strSql, params OracleParameter[] cmdParms)
        {
            object obj = GetSingle(strSql, cmdParms);
            int cmdresult;
            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
            {
                cmdresult = 0;
            }
            else
            {
                cmdresult = int.Parse(obj.ToString());
            }
            if (cmdresult == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        #endregion
        /// <summary>
        /// æ‰§è¡Œä¸€æ¡è®¡ç®—查询结果语句,返回查询结果(object)。
        /// </summary>
        /// <param name="SQLString">计算查询结果语句</param>
        /// <returns>查询结果(object)</returns>
        public static object GetSingle(string SQLString)
        {
            using (OracleConnection connection = new OracleConnection(connectionString))
            {
                using (OracleCommand cmd = new OracleCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        object obj = cmd.ExecuteScalar();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            return null;
                        }
                        else
                        {
                            return obj;
                        }
                    }
                    catch (System.Data.OracleClient.OracleException e)
                    {
                        connection.Close();
                        throw new Exception(e.Message);
                    }
                }
            }
        }
        /// <summary>
        /// æ‰§è¡Œä¸€æ¡è®¡ç®—查询结果语句,返回查询结果(object)。
        /// </summary>
        /// <param name="SQLString">计算查询结果语句</param>
        /// <returns>查询结果(object)</returns>
        public static object GetSingle(string SQLString, params OracleParameter[] cmdParms)
        {
            using (OracleConnection connection = new OracleConnection(connectionString))
            {
                using (OracleCommand cmd = new OracleCommand())
                {
                    try
                    {
                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                        object obj = cmd.ExecuteScalar();
                        cmd.Parameters.Clear();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            return null;
                        }
                        else
                        {
                            return obj;
                        }
                    }
                    catch (System.Data.OracleClient.OracleException e)
                    {
                        throw new Exception(e.Message);
                    }
                }
            }
        }
        private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, string cmdText, OracleParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (OracleParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);
            }
        }
        public static int ExecuteSql(string SQLString)
        {
            using (OracleConnection connection = new OracleConnection(connectionString))
            {
                using (OracleCommand cmd = new OracleCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.OracleClient.OracleException E)
                    {
                        connection.Close();
                        throw new Exception(E.Message);
                    }
                }
            }
        }
        public static int ExecuteSql(string SQLString,string clob)
        {
            using (OracleConnection connection = new OracleConnection(connectionString))
            {
                using (OracleCommand cmd = new OracleCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        OracleParameter op = new OracleParameter("clob", OracleType.Clob);
                        op.Value = clob;
                        cmd.Parameters.Add(op);
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.OracleClient.OracleException E)
                    {
                        connection.Close();
                        throw new Exception(E.Message);
                    }
                }
            }
        }
    }
}
Properties/AssemblyInfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// æœ‰å…³ç¨‹åºé›†çš„常规信息通过下列特性集
// æŽ§åˆ¶ã€‚更改这些特性值可修改
// ä¸Žç¨‹åºé›†å…³è”的信息。
[assembly: AssemblyTitle("WebserviceGS")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WebserviceGS")]
[assembly: AssemblyCopyright("Copyright Â©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// å°† ComVisible è®¾ç½®ä¸º false ä¼šä½¿æ­¤ç¨‹åºé›†ä¸­çš„类型
// å¯¹ COM ç»„件不可见。如果需要
// ä»Ž COM è®¿é—®æ­¤ç¨‹åºé›†ä¸­çš„æŸä¸ªç±»åž‹ï¼Œè¯·é’ˆå¯¹è¯¥ç±»åž‹å°† ComVisible ç‰¹æ€§è®¾ç½®ä¸º true。
[assembly: ComVisible(false)]
// å¦‚果此项目向 COM å…¬å¼€ï¼Œåˆ™ä¸‹åˆ— GUID ç”¨äºŽ typelib çš„ ID
[assembly: Guid("1e975db8-481f-471c-81f7-be45fe9eb702")]
// ç¨‹åºé›†çš„版本信息由下列四个值组成:
//
//      ä¸»ç‰ˆæœ¬
//      æ¬¡ç‰ˆæœ¬
//      å†…部版本号
//      ä¿®è®¢ç‰ˆæœ¬
//
// å¯ä»¥æŒ‡å®šæ‰€æœ‰å€¼ï¼Œä¹Ÿå¯ä»¥ä½¿ç”¨â€œä¿®è®¢å·â€å’Œâ€œå†…部版本号”的默认值,
// æ–¹æ³•是按如下所示使用 "*":
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
SQLHelperClass.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,604 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace Common
{
    /// <summary>
    /// ç”¨äºŽSQL Server数据库访问的帮助类
    /// </summary>
    public class SQLHelperClass
    {
        private string _connectionString = "";
        public string connectionString
        {
            get { return _connectionString; }
            set { _connectionString =value; }
        }
        private  SqlConnection _connection4Tran;
        private  SqlTransaction _transaction;
        private  readonly Queue<SqlTask> _transactionTaskList;
        /// <summary>
        /// åˆ›å»ºä¸€ä¸ªæ–°çš„SQLHelper并指定连接字符串
        /// </summary>
        public SQLHelperClass()
        {
            _transactionTaskList = new Queue<SqlTask>();
        }
        ///// <summary>
        ///// åˆ›å»ºä¸€ä¸ªæ–°çš„SQLHelper并指定连接信息
        ///// </summary>
        ///// <param name="server"></param>
        ///// <param name="userID"></param>
        ///// <param name="password"></param>
        ///// <param name="database"></param>
        //  SQLHelper(string server, string userID, string password, string database)
        //{
        //    _transactionTaskList = new Queue<SqlTask>();
        //    if (database == string.Empty)
        //    {
        //        _connectionString = "Data Source=" + server + ";User ID=" + userID + ";Password=" + password;
        //    }
        //    else
        //    {
        //        _connectionString = "Data Source=" + server + ";User ID=" + userID + ";Password=" + password + ";Initial Catalog=" + database;
        //    }
        //}
        /// <summary>
        /// æµ‹è¯•连接
        /// </summary>
        /// <returns></returns>
         public  bool TestConnection()
        {
            try
            {
                using (var connection = new SqlConnection(_connectionString))
                {
                    connection.Open();
                    connection.Close();
                    return true;
                }
            }
            catch (Exception)
            {
                return false;
            }
        }
        /// <summary>
        /// ExecuteNonQuery操作,对数据库进行 å¢žã€åˆ ã€æ”¹ æ“ä½œ(1)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <returns> </returns>
         public int ExecuteNonQuery(string sql)
        {
            return ExecuteNonQuery(sql, CommandType.Text, null);
        }
        /// <summary>
        /// ExecuteNonQuery操作,对数据库进行 å¢žã€åˆ ã€æ”¹ æ“ä½œï¼ˆ2)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <returns> </returns>
         public  int ExecuteNonQuery(string sql, CommandType commandType)
        {
            return ExecuteNonQuery(sql, commandType, null);
        }
        /// <summary>
        /// ExecuteNonQuery操作,对数据库进行 å¢žã€åˆ ã€æ”¹ æ“ä½œï¼ˆ3)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <param name="parameters">参数数组 </param>
        /// <returns> </returns>
         public  int ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters)
        {
            return ExecuteNonQuery(sql, commandType, parameters, false);
        }
        /// <summary>
        /// ExecuteNonQuery操作,对数据库进行 å¢žã€åˆ ã€æ”¹ æ“ä½œ(4)
        /// </summary>
        /// <param name="sql">要执行的SQL语句</param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本)</param>
        /// <param name="parameters">参数数组</param>
        /// <param name="joinTransaction">是否加入事务处理;如果为true,前提是必须使用BeginTransaction开始了一个事务,如果为false,不使用事务。</param>
        /// <returns></returns>
         public  int ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters, bool joinTransaction)
        {
            int count = 0;
            if (joinTransaction)
            {
                if (_transaction == null || _connection4Tran == null)
                {
                    throw new Exception("事务未初始化!");
                }
                //using (var command = new SqlCommand(sql, _connection4Tran))
                //{
                //    command.CommandType = commandType;
                //    if (parameters != null)
                //    {
                //        foreach (SqlParameter parameter in parameters)
                //        {
                //            command.Parameters.Add(parameter);
                //        }
                //    }
                //    command.Transaction = _transaction;
                //    count = command.ExecuteNonQuery();
                //}
                _transactionTaskList.Enqueue(new SqlTask(sql, commandType, parameters));
            }
            else
            {
                using (var connection = new SqlConnection(_connectionString))
                {
                    using (var command = new SqlCommand(sql, connection))
                    {
                        command.CommandType = commandType;
                        if (parameters != null)
                        {
                            foreach (SqlParameter parameter in parameters)
                            {
                                command.Parameters.Add(parameter);
                            }
                        }
                        connection.Open();
                        count = command.ExecuteNonQuery();
                    }
                }
            }
            return count;
        }
        /// <summary>
        /// SqlDataAdapter的Fill方法执行一个查询,并返回一个DataSet类型结果(1)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <returns> </returns>
         public  DataSet ExecuteDataSet(string sql)
        {
            return ExecuteDataSet(sql, CommandType.Text, null);
        }
        /// <summary>
        /// SqlDataAdapter的Fill方法执行一个查询,并返回一个DataSet类型结果(2)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <returns> </returns>
         public  DataSet ExecuteDataSet(string sql, CommandType commandType)
        {
            return ExecuteDataSet(sql, commandType, null);
        }
        /// <summary>
        /// SqlDataAdapter的Fill方法执行一个查询,并返回一个DataSet类型结果(3)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <param name="parameters">参数数组 </param>
        /// <returns> </returns>
         public  DataSet ExecuteDataSet(string sql, CommandType commandType, SqlParameter[] parameters)
        {
            var ds = new DataSet();
            using (var connection = new SqlConnection(_connectionString))
            {
                using (var command = new SqlCommand(sql, connection))
                {
                    command.CommandType = commandType;
                    if (parameters != null)
                    {
                        foreach (SqlParameter parameter in parameters)
                        {
                            command.Parameters.Add(parameter);
                        }
                    }
                    var adapter = new SqlDataAdapter(command);
                    adapter.Fill(ds);
                    command.Parameters.Clear();//将使用完之后的Command命令的Parameters集合清空
                }
            }
            return ds;
        }
        /// <summary>
        /// SqlDataAdapter的Fill方法执行一个查询,并返回一个DataTable类型结果(1)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <returns> </returns>
         public  DataTable ExecuteDataTable(string sql)
        {
            return ExecuteDataTable(sql, CommandType.Text, null);
        }
        /// <summary>
        /// SqlDataAdapter的Fill方法执行一个查询,并返回一个DataTable类型结果(2)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <returns> </returns>
         public  DataTable ExecuteDataTable(string sql, CommandType commandType)
        {
            return ExecuteDataTable(sql, commandType, null);
        }
        /// <summary>
        /// SqlDataAdapter的Fill方法执行一个查询,并返回一个DataTable类型结果(3)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <param name="parameters">参数数组 </param>
        /// <returns> </returns>
         public  DataTable ExecuteDataTable(string sql, CommandType commandType, SqlParameter[] parameters)
        {
            var data = new DataTable();
            using (var connection = new SqlConnection(_connectionString))
            {
                using (var command = new SqlCommand(sql, connection))
                {
                    command.CommandType = commandType;
                    if (parameters != null)
                    {
                        foreach (SqlParameter parameter in parameters)
                        {
                            command.Parameters.Add(parameter);
                        }
                    }
                    var adapter = new SqlDataAdapter(command);
                    adapter.Fill(data);
                    command.Parameters.Clear();//将使用完之后的Command命令的Parameters集合清空
                }
            }
            return data;
        }
        /// <summary>
        /// ExecuteReader执行一查询,返回一SqlDataReader对象实例(1)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <returns> </returns>
         public  SqlDataReader ExecuteReader(string sql)
        {
            return ExecuteReader(sql, CommandType.Text, null);
        }
        /// <summary>
        /// ExecuteReader执行一查询,返回一SqlDataReader对象实例(2)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <returns> </returns>
         public  SqlDataReader ExecuteReader(string sql, CommandType commandType)
        {
            return ExecuteReader(sql, commandType, null);
        }
        /// <summary>
        /// ExecuteReader执行一查询,返回一SqlDataReader对象实例(3)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <param name="parameters">参数数组 </param>
        /// <returns> </returns>
         public  SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters)
        {
            var connection = new SqlConnection(_connectionString);
            var command = new SqlCommand(sql, connection) { CommandType = commandType };
            if (parameters != null)
            {
                foreach (SqlParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
            }
            connection.Open();
            return command.ExecuteReader(CommandBehavior.CloseConnection);
        }
        /// <summary>
        /// ExecuteScalar执行一查询,返回查询结果的第一行第一列(1)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <returns> </returns>
         public  Object ExecuteScalar(string sql)
        {
            return ExecuteScalar(sql, CommandType.Text, null);
        }
        /// <summary>
        /// ExecuteScalar执行一查询,返回查询结果的第一行第一列(2)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <returns> </returns>
         public  Object ExecuteScalar(string sql, CommandType commandType)
        {
            return ExecuteScalar(sql, commandType, null);
        }
        /// <summary>
        /// ExecuteScalar执行一查询,返回查询结果的第一行第一列(3)
        /// </summary>
        /// <param name="sql">要执行的SQL语句 </param>
        /// <param name="commandType">要执行的查询类型(存储过程、SQL文本) </param>
        /// <param name="parameters">参数数组</param>
        /// <returns> </returns>
         public  Object ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters)
        {
            object result;
            using (var connection = new SqlConnection(_connectionString))
            {
                using (var command = new SqlCommand(sql, connection))
                {
                    command.CommandType = commandType;
                    if (parameters != null)
                    {
                        foreach (SqlParameter parameter in parameters)
                        {
                            command.Parameters.Add(parameter);
                        }
                    }
                    connection.Open();
                    result = command.ExecuteScalar();
                    command.Parameters.Clear();//将使用完之后的Command命令的Parameters集合清空
                }
            }
            return result;
        }
        /// <summary>
        /// è¿”回当前连接的数据库中所有由用户创建的数据表
        /// </summary>
        /// <returns> </returns>
         public  DataTable GetTables()
        {
            DataTable data;
            using (var connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                data = connection.GetSchema("Tables");
            }
            return data;
        }
        /// <summary>
        /// è¿”回当前连接的数据库列表
        /// </summary>
        /// <returns> </returns>
         public  DataTable GetDatabases()
        {
            DataTable data;
            using (var connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                data = connection.GetSchema("Databases");
            }
            return data;
        }
        /// <summary>
        /// èŽ·å–SQL Server服务器列表
        /// </summary>
        /// <returns></returns>
       public  ArrayList GetServerList()
        {
            var arrayList = new ArrayList();
            foreach (DataRow dr in System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources().Rows)
            {
                arrayList.Add(dr[0].ToString());
            }
            return arrayList;
        }
        /// <summary>
        /// å¼€å§‹ä¸€ä¸ªäº‹åŠ¡å¤„ç†
        /// <para/>
        /// <para>调用格式样例:</para>
        /// <para/>
        /// <para><code>SQLHelper.BeginTransaction</code></para>
        /// <para><code>SQLHelper.ExecuteNoneQuery(command1)</code></para>
        /// <para><code>SQLHelper.ExecuteNoneQuery(command2)</code></para>
        /// <para><code>SQLHelper.ExecuteNoneQuery(...)</code></para>
        /// <para><code>SQLHelper.CommitTransaction</code></para>
        /// <para/>
        /// <para>在事务提交之前,可随时使用方法CancelTransaction取消事务;</para>
        /// <para>如果事务在提交的过程中发生错误,将自动回滚事务。</para>
        /// </summary>
        /// <param name="isolationLevel">事务隔离级别</param>
        public  void BeginTransaction(IsolationLevel isolationLevel)
        {
            if ((_transaction != null) || (_connection4Tran != null))
            {
                throw new Exception("要开始一个新的事务,请先完成当前事务!");
            }
            _connection4Tran = new SqlConnection(_connectionString);
            _connection4Tran.Open();
            _transaction = _connection4Tran.BeginTransaction(isolationLevel);
            _transactionTaskList.Clear();
        }
        /// <summary>
        /// æäº¤äº‹åŠ¡
        /// </summary>
        public  void CommitTransaction()
        {
            try
            {
                if (_transactionTaskList.Count > 0)
                {
                    foreach (SqlTask sqlTask in _transactionTaskList)
                    {
                        using (var command = new SqlCommand(sqlTask.Text, _connection4Tran))
                        {
                            command.CommandType = sqlTask.CommandType;
                            if (sqlTask.Parameters != null)
                            {
                                foreach (SqlParameter parameter in sqlTask.Parameters)
                                {
                                    command.Parameters.Add(parameter);
                                }
                            }
                            command.Transaction = _transaction;
                            command.ExecuteNonQuery();
                        }
                    }
                }
                _transaction.Commit();
            }
            catch (Exception)
            {
                _transaction.Rollback();
                throw;
            }
            finally
            {
                if (_transaction != null)
                {
                    _transaction.Dispose();
                }
                if (_connection4Tran != null)
                {
                    _connection4Tran.Close();
                }
                if (_connection4Tran != null)
                {
                    _connection4Tran.Dispose();
                }
                _transaction = null;
                _connection4Tran = null;
                _transactionTaskList.Clear();
            }
        }
        /// <summary>
        /// é€šè¿‡å­˜å‚¨è¿‡ç¨‹è¿”回结果集方法
        /// </summary>
        /// <param name="procedureName">存储过程名称</param>
        /// <param name="param">参数组</param>
        /// <returns>返回SqlDataReader数据结果集</returns>
        public  SqlDataReader GetReaderByProcedure(string procedureName, SqlParameter[] param)
        {
            SqlConnection conn = new SqlConnection(_connectionString);
            SqlCommand cmd = new SqlCommand();
            try
            {
                conn.Open();
                cmd.Connection = conn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = procedureName;
                cmd.Parameters.AddRange(param);
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                WritterError("执行 GetReaderByProcedure(string procedureName,SqlParameter[] param)出现异常:", ex.Message);
                conn.Close();
                throw;
            }
        }
        /// <summary>
        /// é€šè¿‡å­˜å‚¨è¿‡ç¨‹è¿”回一个DataSet数据集
        /// </summary>
        /// <param name="procedureName">存储过程名称</param>
        /// <param name="param">存储过程所需参数</param>
        /// <returns>DataSet数据集</returns>
        public  DataSet GetDataSetByProcedure(string procedureName, SqlParameter[] param)
        {
            SqlConnection conn = new SqlConnection(_connectionString);
            SqlCommand cmd = new SqlCommand(procedureName, conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            try
            {
                conn.Open();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddRange(param);
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                //WritterError("执行GetTableByProcedure(string procedureName,SqlParameter[] param)出现异常:", ex.Message);
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
        #region é”™è¯¯ä¿¡æ¯å†™å…¥æ—¥å¿—
        public  void WritterError(string errorObjName, string exMessage)
        {
            FileStream fs = new FileStream("libraryError.log", FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(string.Format("{0}{1}", errorObjName, exMessage + GetServerTime()));
            sw.Close();
            fs.Close();
        }
        #endregion
        #region èŽ·å–æœåŠ¡å™¨æ—¶é—´
        public  DateTime GetServerTime()
        {
            return Convert.ToDateTime(ExecuteScalar("select getdate()"));
        }
        #endregion
        /// <summary>
        /// å–消事务
        /// </summary>
        public  void CancelTransaction()
        {
            if (_transaction != null)
            {
                _transaction.Dispose();
            }
            if (_connection4Tran != null)
            {
                _connection4Tran.Close();
            }
            if (_connection4Tran != null)
            {
                _connection4Tran.Dispose();
            }
            _transaction = null;
            _connection4Tran = null;
        }
        #region ICloneable æˆå‘˜
        //public  object Clone()
        //{
        //    return (new SQLHelper(_connectionString));
        //}
        #endregion
        #region IDisposable æˆå‘˜
        //public void Dispose()
        //{
        //    _connection4Tran = null;
        //    _transaction = null;
        //}
        #endregion
        public class SqlTask
        {
            public string Text { get; private set; }
            public CommandType CommandType { get; private set; }
            public SqlParameter[] Parameters { get; private set; }
            public SqlTask(string text, CommandType commandType, SqlParameter[] paras)
            {
                Text = text;
                CommandType = commandType;
                Parameters = paras;
            }
        }
    }
}
Web.Debug.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- æœ‰å…³ä½¿ç”¨ web.config è½¬æ¢çš„详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <!--
    åœ¨ä¸‹ä¾‹ä¸­ï¼Œâ€œSetAttributes”转换将更改
    â€œconnectionString”的值,以仅在“Match”定位器
    æ‰¾åˆ°å€¼ä¸ºâ€œMyDB”的特性“name”时使用“ReleaseSQLServer”。
    <connectionStrings>
      <add name="MyDB"
        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
  -->
  <system.web>
    <!--
      åœ¨ä¸‹ä¾‹ä¸­ï¼Œâ€œReplace”转换将替换
      web.config æ–‡ä»¶çš„æ•´ä¸ª <customErrors> èŠ‚ã€‚
      è¯·æ³¨æ„ï¼Œç”±äºŽ
      åœ¨ <system.web> èŠ‚ç‚¹ä¸‹ä»…æœ‰ä¸€ä¸ª customErrors èŠ‚ï¼Œå› æ­¤ä¸éœ€è¦ä½¿ç”¨â€œxdt:Locator”特性。
      <customErrors defaultRedirect="GenericError.htm"
        mode="RemoteOnly" xdt:Transform="Replace">
        <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
    -->
  </system.web>
</configuration>
Web.Release.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- æœ‰å…³ä½¿ç”¨ web.config è½¬æ¢çš„详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <!--
    åœ¨ä¸‹ä¾‹ä¸­ï¼Œâ€œSetAttributes”转换将更改
    â€œconnectionString”的值,以仅在“Match”定位器
    æ‰¾åˆ°å€¼ä¸ºâ€œMyDB”的特性“name”时使用“ReleaseSQLServer”。
    <connectionStrings>
      <add name="MyDB"
        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
  -->
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
    <!--
      åœ¨ä¸‹ä¾‹ä¸­ï¼Œâ€œReplace”转换将替换
      web.config æ–‡ä»¶çš„æ•´ä¸ª <customErrors> èŠ‚ã€‚
      è¯·æ³¨æ„ï¼Œç”±äºŽ
      åœ¨ <system.web> èŠ‚ç‚¹ä¸‹ä»…æœ‰ä¸€ä¸ª customErrors èŠ‚ï¼Œå› æ­¤ä¸éœ€è¦ä½¿ç”¨â€œxdt:Locator”特性。
      <customErrors defaultRedirect="GenericError.htm"
        mode="RemoteOnly" xdt:Transform="Replace">
        <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
    -->
  </system.web>
</configuration>
Web.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
<?xml version="1.0"?>
<!--
  æœ‰å…³å¦‚何配置 ASP.NET åº”用程序的详细信息,请访问
  https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
  <configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>
  <system.web>
    <compilation debug="true">
      <assemblies>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>
    <httpRuntime/>
    <pages>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </controls>
    </pages>
    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701">
        <providerOption name="CompilerVersion" value="v3.5"/>
        <providerOption name="WarnAsError" value="false"/>
      </compiler>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+">
        <providerOption name="CompilerVersion" value="v3.5"/>
        <providerOption name="OptionInfer" value="true"/>
        <providerOption name="WarnAsError" value="false"/>
      </compiler>
    </compilers>
  </system.codedom>
  <system.webServer>
      <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <remove name="ScriptModule"/>
      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <remove name="ScriptHandlerFactory"/>
      <remove name="ScriptHandlerFactoryAppServices"/>
      <remove name="ScriptResource"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </handlers>
  </system.webServer>
  <runtime>
    <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
WebService1.asmx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
<%@ WebService Language="C#" CodeBehind="WebService1.asmx.cs" Class="WebserviceGS.WebService1" %>
WebService1.asmx.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
using Common;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OracleClient;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Xml.Linq;
namespace WebserviceGS
{
    /// <summary>
    /// WebService1 çš„æ‘˜è¦è¯´æ˜Ž
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // è‹¥è¦å…è®¸ä½¿ç”¨ ASP.NET AJAX ä»Žè„šæœ¬ä¸­è°ƒç”¨æ­¤ Web æœåŠ¡ï¼Œè¯·å–æ¶ˆæ³¨é‡Šä»¥ä¸‹è¡Œã€‚
    // [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string ERP_TO_MES_DataTransport(string task_name,string create_time, string creator, string operatype,
                                               string version, string imagenumber, string imagenumnew, string baseimage)
        {
            SQLHelperClass SQLHelper = new SQLHelperClass();
             SQLHelper.connectionString = "Data Source=192.168.1.198;Initial Catalog=CSFrameworkV5_Normal;User Id=sa;Password=Weaver@2001;Pooling=False;Pooling=true;Min Pool Size=10;Max Pool Size=50;Connect Timeout=500";
            string res = "";
            string sql = "";
            if (task_name == null || create_time == null || creator == null || operatype == null || version == null || imagenumber == null )
            {
                res = "ERROR:输入参数不能为空";
            return res;
        }
            if (operatype!="INSERT"&& operatype != "UPDATE" && operatype != "DELETE")
            {
                res = "ERROR:操作类型operatype错误";
                return res;
            }
            //对JSON格式判断正确性 éƒ½ä»¥DataSet作序列化来传值
            //DataSet ds=new DataSet();
            //JsonConvert.SerializeObject(ds, new DataSetConverter());
            //DataSet api_DatSet = JsonConvert.DeserializeObject(data, typeof(DataSet)) as DataSet;
            //if (api_DatSet == null || api_DatSet.Tables.Count == 0)
            //{
            //    res = "ERROR:数据无效,或者JSON格式有误,请查证!";
            //    return res;
            //}
            //将数据存入数据中间表中
            try
            {
                //                sql = string.Format(@"
                //insert into sysdec(task_id,task_name,descript,create_time,creator,operatype,source_table,target_table,data,data_inserted,data_deleted,states)
                //            values(newid(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','NEW')",
                //                    task_name, descript, create_time, creator, operatype, source_table, target_table, data, data_inserted, data_deleted);
                //                int i = SQLHelper.ExecuteNonQuery(sql);
                //                res = i > 0 ? "OK" : "ERROR";
                string currentTime = DateTime.Now.ToString();
                List<SqlParameter> list = new List<SqlParameter>();
                list.Add(new SqlParameter("@task_name", task_name));
                list.Add(new SqlParameter("@create_time", create_time));
                list.Add(new SqlParameter("@down_time", currentTime));
                list.Add(new SqlParameter("@creator", creator));
                list.Add(new SqlParameter("@operatype", operatype));
                list.Add(new SqlParameter("@version", version));
                list.Add(new SqlParameter("@imagenumnew", imagenumnew));
                list.Add(new SqlParameter("@imagenumber", imagenumber));
                list.Add(new SqlParameter("@baseimage", baseimage));
                sql = string.Format(@"
insert into sysdectu(task_id,task_name,create_time,down_time,creator,operatype,version,imagenumber,imagenumnew,baseimage,states)
values(newid(),@task_name,@create_time,@down_time,@creator,@operatype,@version,@imagenumber,@imagenumnew,@baseimage,'NEW')");
                int i = SQLHelper.ExecuteNonQuery(sql, CommandType.Text, list.ToArray());
                res = i > 0 ? "OK" : "ERROR";
            }
            catch (Exception ex)
            {
                res = "ERROR:" + ex.Message;
            }
            return res;
        }
    }
}
WebserviceGS.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,116 @@
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>
    </ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{1E975DB8-481F-471C-81F7-BE45FE9EB702}</ProjectGuid>
    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>WebserviceGS</RootNamespace>
    <AssemblyName>WebserviceGS</AssemblyName>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <UseIISExpress>true</UseIISExpress>
    <Use64BitIISExpress />
    <IISExpressSSLPort>44347</IISExpressSSLPort>
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <UseGlobalApplicationHostFile />
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <HintPath>packages\Newtonsoft.Json.13.0.3\lib\net35\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="System.Data.OracleClient" />
    <Reference Include="System.Web.Extensions" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Web" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.EnterpriseServices" />
    <Reference Include="System.Xml.Linq" />
  </ItemGroup>
  <ItemGroup>
    <None Include="packages.config" />
    <None Include="Web.Debug.config">
      <DependentUpon>Web.config</DependentUpon>
    </None>
    <None Include="Web.Release.config">
      <DependentUpon>Web.config</DependentUpon>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Content Include="Web.config" />
    <Content Include="WebService1.asmx" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="DBorl.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="SQLHelperClass.cs" />
    <Compile Include="WebService1.asmx.cs">
      <DependentUpon>WebService1.asmx</DependentUpon>
      <SubType>Component</SubType>
    </Compile>
  </ItemGroup>
  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>57264</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>https://localhost:44347/</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
WebserviceGS.sln
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33414.496
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebserviceGS", "WebserviceGS.csproj", "{1E975DB8-481F-471C-81F7-BE45FE9EB702}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {1E975DB8-481F-471C-81F7-BE45FE9EB702}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {1E975DB8-481F-471C-81F7-BE45FE9EB702}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {1E975DB8-481F-471C-81F7-BE45FE9EB702}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {1E975DB8-481F-471C-81F7-BE45FE9EB702}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {61F17D80-25A2-4520-B1C0-4AE3008870E1}
    EndGlobalSection
EndGlobal
packages.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net35" />
</packages>