visual studio 2022 初学流程

news2025/6/4 0:32:57

本文采用总-分的形式讲述流程
1.前端外部可以使用的接口 
     ExternalDataWebService.asmx?op=ReportWaterForWayder
   新建ExternalDataWebService.asmx 文件

<%@ WebService Language="C#" CodeBehind="~/App_Code/ExternalDataWebService.cs" Class="ExternalDataWebService" %>

新建ExternalDataWebService.cs文件,用于外部使用的接口方法

public void ReportWaterForWayder(string userid, string token, string begindate, string enddate)
{
    Context.Response.ContentType = "application/json";
    Context.Response.ContentEncoding = System.Text.Encoding.UTF8;
    Newtonsoft.Json.JsonSerializerSettings jsetting = new Newtonsoft.Json.JsonSerializerSettings();
    JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
    {
        //日期类型默认格式化处理
        jsetting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
        jsetting.DateFormatString = "yyyy-MM-dd HH:mm:ss";

        //空值处理
        jsetting.NullValueHandling = NullValueHandling.Ignore;

        return jsetting;
    });

    Resultobject<List<WayderWaterReport>> result = new Resultobject<List<WayderWaterReport>>();
    try
    {

        result.Reponsecode = "0000";
        result.Reponsedesc = "";
        result.Resultmsg = new ExternalDataBizService().WayderWaterReportDingzhi(userid, token, begindate, enddate);
        Context.Response.Write(JsonConvert.SerializeObject(result, Formatting.Indented, jsetting));


    }
    catch (AuthException ae)
    {
        result.Reponsecode = "2001";
        result.Reponsedesc = ae.Message;
        result.Resultmsg = null;
        Context.Response.Write(JsonConvert.SerializeObject(result, Formatting.Indented, jsetting));
    }
    catch (BizException le)
    {
        result.Reponsecode = "1001";
        result.Reponsedesc = le.Message;
        result.Resultmsg = null;
        Context.Response.Write(JsonConvert.SerializeObject(result, Formatting.Indented, jsetting));
    }
    catch (Exception e)
    {
        result.Reponsecode = "1002";
        result.Reponsedesc = e.Message;
        result.Resultmsg = null;
        Context.Response.Write(JsonConvert.SerializeObject(result, Formatting.Indented, jsetting));

    }
    finally
    {
        Context.Response.End();
    }
}

2.文中使用到的 new ExternalDataBizService().WayderWaterReportDingzhi(userid, token, begindate, enddate)方法以及WayderWaterReport的数据类型需要分别在ExternalDataBizService.cs文件和WayderWaterReport.cs文件中声明

public List<WayderWaterReport> WayderWaterReportDingzhi(string userid, string token, string begindate,string enddate)
{

    #region  日志信息
    UploadLog uploadLog = new UploadLog();
    uploadLog.Uuid = Guid.NewGuid().ToString();
    uploadLog.Cixu = 1;
    uploadLog.Commiter = userid;
    uploadLog.Committime = DateTime.Now;
    uploadLog.Methodname = "WayderWaterReportDingzhi";
    uploadLog.JsonString = token.ToString() + "," + userid + "," + begindate + "," + enddate;
    uploadLog.Desc = "伟达定制:水报表";
    uploadLog.Isdeal = 0;
    #endregion

    #region 初始化json类
    Newtonsoft.Json.JsonSerializerSettings jsetting = new Newtonsoft.Json.JsonSerializerSettings();
    JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
    {
        //日期类型默认格式化处理
        jsetting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
        jsetting.DateFormatString = "yyyy-MM-dd HH:mm:ss";

        //空值处理
        jsetting.NullValueHandling = NullValueHandling.Ignore;

        return jsetting;
    });
    #endregion

    try
    {
        #region 判断token有效性
        try
        {
            Api_Auth api_Auth = new Api_Auth(true, DbUtility.getDbconn());
            Api_Auth.AuthInfo authInfo = api_Auth.CheckAuth(userid, token);
            if (authInfo.AccessRes == false)
            {
                throw new AuthException(authInfo.ResMsg);
            }
            userid = authInfo.Username;
        }
        catch (Exception e)
        {
            throw new AuthException(e.Message);
        }

        #endregion
        //数据库连接
        MySqlConnection conn = new MySqlConnection(DbUtility.getDbconn());
        MySqlTransaction trans = null;
        try
        {
            conn.Open();
            if (String.IsNullOrEmpty(begindate))
            {
                throw new BizException("begindate不能为空,请检查");
            }
            if (String.IsNullOrEmpty(enddate))
            {
                throw new BizException("enddate不能为空,请检查");
            }
            //获得用户信息
            Xt_user user = new Xt_userDataService().Get(conn, trans, userid);
            if (user == null) throw new BizException("用户不存在,请检查");
            Xt_dept dept = new Xt_deptDataService().Get(conn, trans, user.Dept);
            if (dept == null) throw new BizException("部门不存在,请检查");
            String cuscode = dept.Abbr;
            if (String.IsNullOrEmpty(cuscode)) throw new BizException("客户代码未设置,请检查");
            //List<Bb_api_authorization> authorization = new Bb_api_authorizationDataService().GetValid(conn, trans, cuscode);
            //if ((authorization == null) || (authorization.Count == 0)) throw new BizException("客户API访问未授权,请检查");
            Report_dailywaterDataService report_DailywaterDataService = new Report_dailywaterDataService(cuscode);
            Wayder_watersetDataService wayder_WatersetDataService = new Wayder_watersetDataService();
            List<WayderWaterReport> result = new List<WayderWaterReport>();
            DateTime begintime = Convert.ToDateTime(begindate);
            DateTime endtime = Convert.ToDateTime(enddate);

            //循环体按照日期处理
            do
            {
                WayderWaterReport setdataItem = new WayderWaterReport();
                setdataItem.date = begintime.Date.ToString("yyyy-MM-dd");
                //水表1
                Report_dailywater dailywater1=  report_DailywaterDataService.GetStationDaily(conn,trans, "3007001", begintime.Date);
                if (dailywater1 != null) setdataItem.dailywater3007001 = dailywater1; else setdataItem.dailywater3007001 = new Report_dailywater();
                //水表2
                Report_dailywater dailywater2 = report_DailywaterDataService.GetStationDaily(conn, trans, "30501", begintime.Date);
                if (dailywater1 != null) setdataItem.dailywater30501 = dailywater2; else setdataItem.dailywater30501 = new Report_dailywater();
                //水表3
                Report_dailywater dailywater3 = report_DailywaterDataService.GetStationDaily(conn, trans, "3007002", begintime.Date);
                if (dailywater1 != null) setdataItem.dailywater3007002 = dailywater3; else setdataItem.dailywater3007002 = new Report_dailywater();
                //获取设置值
                Wayder_waterset waterset =wayder_WatersetDataService.GetByDate(conn, trans, begintime.Date);
                if (waterset != null)
                {
                    setdataItem.wayder_Waterset = waterset;
                }
                else
                {
                    setdataItem.wayder_Waterset = new Wayder_waterset();
                    setdataItem.wayder_Waterset.Wastewater_living = 0;
                    setdataItem.wayder_Waterset.Unpolluted_used = 0;
                    setdataItem.wayder_Waterset.Unpolluted_living = 0;
                    setdataItem.wayder_Waterset.Total_water = (decimal)141.3;
                    setdataItem.wayder_Waterset.Industrial_wastewater = 0;
                }


                result.Add(setdataItem);
                begintime = begintime.AddDays(1);
            } while (begintime <= endtime);

            if (trans != null)
            {
                trans.Commit(); ;
            }
            return result;

        }
        catch (Exception e)
        {
            if (trans != null)
            {
                trans.Rollback();
            }
            uploadLog.Isdeal = 1;
            uploadLog.Desc = "出错" + e.Message;
            throw new BizException(e.Message);
        }
        finally
        {
            trans = null;
            new UploadLogDataService().AddData(conn, trans, uploadLog);
            conn.Close();
        }
    }
    catch (AuthException ea)
    {
        throw ea;
    }
    catch (Exception e)
    {
        throw new BizException(e.Message);
    }
}
using ENMSLibrary.entity.enms;
using ENMSLibrary.entity.enms.wayder;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// WayderWaterReport 的摘要说明
/// </summary>
public class WayderWaterReport
{
    public WayderWaterReport()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    /// <summary>
    /// 
    /// </summary>
    public string date { get; set; }

    public Report_dailywater dailywater3007001 { get; set; }

    public Report_dailywater dailywater30501 { get; set; }

    public Report_dailywater dailywater3007002 { get; set; }

    public Wayder_waterset wayder_Waterset { get; set; }
}

public class SetdataItem
{
    /// <summary>
    /// 
    /// </summary>
    public string date { get; set; }

    public Report_dailywater dailywater3007001 { get; set; }

    public Report_dailywater dailywater30501 { get; set; }

    public Report_dailywater dailywater3007002 { get; set; }

    public Wayder_waterset wayder_Waterset { get; set; }
    /// <summary>
    /// 
    /// </summary>
    public int WASTEWATER_LIVING { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int UNPOLLUTED_USED { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int UNPOLLUTED_LIVING { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int TOTAL_WATER { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int INDUSTRIAL_WASTEWATER { get; set; }


}



public class WaterdataItem
{

    /// <summary>
    /// 
    /// </summary>
    public string date { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string deviceid { get; set; }

    /// <summary>
    /// 工业用水总表
    /// </summary>
    public string devicename { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string occurdate { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public double watermin { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public double watermax { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public double waterdata { get; set; }

}

我们在业务层面使用到的文件ExternalDataBizService.cs。处理业务逻辑,通过数据库的方式,找到对应的数据。其中还包含其他的数据格式Wayder_waterset.cs和Report_dailywater.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ENMSLibrary.entity.enms.wayder
{
    [Serializable]
    public class Wayder_waterset
    {
        /// <summary>
        /// ID
        /// </summary>
        [DisplayName("ID")]
        public string Id { get; set; }

        /// <summary>
        /// CREATTIME
        /// </summary>
        [DisplayName("CREATTIME")]
        public DateTime Creattime { get; set; }

        /// <summary>
        /// 废水回收-用于生活
        /// </summary>
        [DisplayName("废水回收-用于生活")]
        public decimal? Wastewater_living { get; set; }

        /// <summary>
        /// 未污染-用于生产
        /// </summary>
        [DisplayName("未污染-用于生产")]
        public decimal? Unpolluted_used { get; set; }

        /// <summary>
        /// 未污染--用于生活
        /// </summary>
        [DisplayName("未污染--用于生活")]
        public decimal? Unpolluted_living { get; set; }

        /// <summary>
        /// 总储水量
        /// </summary>
        [DisplayName("总储水量")]
        public decimal? Total_water { get; set; }

        /// <summary>
        /// 工业废水排放量
        /// </summary>
        [DisplayName("工业废水排放量")]
        public decimal? Industrial_wastewater { get; set; }

        /// <summary>
        /// 生效时间
        /// </summary>
        [DisplayName("生效时间")]
        public DateTime Begintime { get; set; }

    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace ENMSLibrary.entity.enms
{
	[Serializable]
	public class Report_dailywater
	{
		/// <summary>
		/// id
		/// </summary>
		[DisplayName("id")]
		public Int64 Id { get; set; }

		/// <summary>
		/// deviceid
		/// </summary>
		[DisplayName("deviceid")]
		public int Deviceid { get; set; }

		/// <summary>
		/// devicetype
		/// </summary>
		[DisplayName("devicetype")]
		public int Devicetype { get; set; }

		/// <summary>
		/// devicename
		/// </summary>
		[DisplayName("devicename")]
		public string Devicename { get; set; }

		/// <summary>
		/// occurdate
		/// </summary>
		[DisplayName("occurdate")]
		public DateTime Occurdate { get; set; }

		/// <summary>
		/// watermin
		/// </summary>
		[DisplayName("watermin")]
		public decimal? Watermin { get; set; }

		/// <summary>
		/// watermax
		/// </summary>
		[DisplayName("watermax")]
		public decimal? Watermax { get; set; }

		/// <summary>
		/// waterdata
		/// </summary>
		[DisplayName("waterdata")]
		public decimal? Waterdata { get; set; }

		/// <summary>
		/// creattime
		/// </summary>
		[DisplayName("creattime")]
		public DateTime Creattime { get; set; }

	}
}

两个数据库处理方式

Report_dailywaterDataService.cs和Wayder_watersetDataService.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using MySql.Data;
using ENMSLibrary.entity.enms;
using QCLibrary.exception;
using System.Data;


namespace ENMSLibrary.dataservice.enms
{
	public class Report_dailywaterDataService
	{
		private string cuscode = "";
		private string custable = "";
		/// <summary>
		/// 构造函数
		/// </summary>
		public Report_dailywaterDataService(string cuscode)
		{
			this.cuscode = cuscode;
			this.custable = cuscode + "_" + "report_dailywater";
		}
		/// <summary>
		/// 生成创建 增加sql语句 
		/// </summary>
		/// <param name="data">Report_dailywater实体类</param>
		/// <returns>新建类SQL语句</returns>
		private string GenerateAddSql(Report_dailywater data)
		{
			string ls_pre = "INSERT INTO " + custable + "(";
			string ls_value = "VALUES(";
			if (data == null)
			{
				throw new BizException("新建的数据不能为空");
			}
			#region deviceid
			if (data.Deviceid == null)
			{
			}
			else
			{
				ls_pre = ls_pre + " DEVICEID";
				ls_value = ls_value + " " + data.Deviceid + "";
			}
			#endregion
			#region devicetype
			if (data.Devicetype == null)
			{
			}
			else
			{
				ls_pre = ls_pre + ", DEVICETYPE";
				ls_value = ls_value + "," + data.Devicetype + "";
			}
			#endregion
			#region devicename
			if (data.Devicename == null)
			{
			}
			else
			{
				if (data.Devicename.Length > 255)
				{
					throw new BizException("devicename不能超过255");
				}
				ls_pre = ls_pre + ", DEVICENAME";
				ls_value = ls_value + ",'" + data.Devicename + "'";
			}
			#endregion
			#region occurdate
			if (data.Occurdate == null)
			{
			}
			else
			{
				ls_pre = ls_pre + ", OCCURDATE";
				ls_value = ls_value + ",'" + data.Occurdate.ToString("yyyy-MM-dd HH:mm:ss") + "'";
			}
			#endregion
			#region watermin
			if (data.Watermin == null)
			{
			}
			else
			{
				ls_pre = ls_pre + ", watermin";
				ls_value = ls_value + "," + data.Watermin.ToString() + "";
			}
			#endregion
			#region watermax
			if (data.Watermax == null)
			{
			}
			else
			{
				ls_pre = ls_pre + ", watermax";
				ls_value = ls_value + "," + data.Watermax.ToString() + "";
			}
			#endregion
			#region waterdata
			if (data.Waterdata == null)
			{
			}
			else
			{
				ls_pre = ls_pre + ", waterdata";
				ls_value = ls_value + "," + data.Waterdata.ToString() + "";
			}
			#endregion
			#region creattime
			if ((data.Creattime == null) || (data.Creattime.ToString().Substring(0, 4).Equals("1900")) || (data.Creattime.ToString().Substring(0, 4).Equals("0001")))
			{

			}
			else
			{
				ls_pre = ls_pre + ", CREATTIME";
				ls_value = ls_value + ",'" + data.Creattime.ToString("yyyy-MM-dd HH:mm:ss") + "'";
			}
			#endregion
			return ls_pre + ") " + ls_value + ")";
		}
		/// <summary>
		/// 添加记录
		/// </summary>
		/// <param name="model">Data.Model.Report_dailywater实体类</param>
		/// <returns>新增记录的ID</returns>
		public void Add(MySqlConnection conn, MySqlTransaction trans, Report_dailywater data)
		{
			try
			{
				if (conn == null || conn.State != ConnectionState.Open)
				{
					throw new Exception("数据连接不可用");
				}
				string sql = this.GenerateAddSql(data);
				MySqlCommand command;
				if (trans != null)
				{
					command = new MySqlCommand(sql, conn, trans);
				}
				else
				{
					command = new MySqlCommand(sql, conn);
				}
				command.ExecuteNonQuery();
			}
			catch (BizException be)
			{
				throw be;
			}
			catch (Exception e)
			{
				throw new BizException(e.Message);
			}
		}
		/// <summary>
		/// 生成修改sql语句 
		/// </summary>
		/// <param name="data">Report_dailywater实体类</param>
		/// <returns>修改类SQL语句</returns>
		private string GenerateUpdateSql(Report_dailywater data)
		{
			string ls_pre = "UPDATE " + custable + " SET ";
			string ls_value = "";
			if (data == null)
			{
				throw new BizException("新建的数据不能为空");
			}
			#region deviceid
			if (data.Deviceid == null)
			{
			}
			else
			{
				ls_value = "DEVICEID=" + data.Deviceid + "";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			#region devicetype
			if (data.Devicetype == null)
			{
			}
			else
			{
				ls_value = ",DEVICETYPE=" + data.Devicetype + "";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			#region devicename
			if (data.Devicename == null)
			{
			}
			else
			{
				if (data.Devicename.Length > 255)
				{
					throw new BizException("devicename不能超过255");
				}
				ls_value = ",DEVICENAME='" + data.Devicename + "'";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			#region occurdate
			if (data.Occurdate == null)
			{
			}
			else
			{
				ls_value = ",OCCURDATE='" + data.Occurdate.ToString("yyyy-MM-dd HH:mm:ss") + "'";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			#region watermin
			if (data.Watermin == null)
			{
			}
			else
			{
				ls_value = ",watermin='" + data.Watermin.ToString() + "'";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			#region watermax
			if (data.Watermax == null)
			{
			}
			else
			{
				ls_value = ",watermax='" + data.Watermax.ToString() + "'";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			#region waterdata
			if (data.Waterdata == null)
			{
			}
			else
			{
				ls_value = ",waterdata='" + data.Waterdata.ToString() + "'";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			#region creattime
			if (data.Creattime == null)
			{
			}
			else
			{
				ls_value = ",CREATTIME='" + data.Creattime.ToString("yyyy-MM-dd HH:mm:ss") + "'";
				ls_pre = ls_pre + ls_value;
			}
			#endregion
			string result = ls_pre + " WHERE id='" + data.Id + "'";
			return result;
		}
		/// <summary>
		/// 根据主键修改记录
		/// </summary>
		public int Update(MySqlConnection conn, MySqlTransaction trans, Report_dailywater data)
		{
			string sql = GenerateUpdateSql(data);
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			try
			{
				MySqlCommand command;
				if (trans != null)
				{
					command = new MySqlCommand(sql, conn, trans);
				}
				else
				{
					command = new MySqlCommand(sql, conn);
				}
				return command.ExecuteNonQuery();
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
			}
		}
		/// <summary>
		/// 删除记录
		/// </summary>
		public int Delete(MySqlConnection conn, MySqlTransaction trans, Int64 id)
		{
			string sql = "DELETE FROM " + custable + " WHERE id='" + id + "'";
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			try
			{
				MySqlCommand command;
				if (trans != null)
				{
					command = new MySqlCommand(sql, conn, trans);
				}
				else
				{
					command = new MySqlCommand(sql, conn);
				}
				return command.ExecuteNonQuery();
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
			}
		}
		/// <summary>
		/// 将DataSet转换为List
		/// </summary>
		private List<Report_dailywater> DataSetToList(DataSet dataSet)
		{
			List<Report_dailywater> resultList = new List<Report_dailywater>();
			Report_dailywater model = null;
			for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
			{
				model = new Report_dailywater();
				model.Id = Convert.ToInt64(dataSet.Tables[0].Rows[i]["ID"].ToString());
				if (dataSet.Tables[0].Rows[i]["DEVICEID"] != DBNull.Value)
					model.Deviceid = Convert.ToInt32(dataSet.Tables[0].Rows[i]["DEVICEID"].ToString());
				if (dataSet.Tables[0].Rows[i]["DEVICETYPE"] != DBNull.Value)
					model.Devicetype = Convert.ToInt32(dataSet.Tables[0].Rows[i]["DEVICETYPE"].ToString());
				if (dataSet.Tables[0].Rows[i]["DEVICENAME"] != DBNull.Value)
					model.Devicename = dataSet.Tables[0].Rows[i]["DEVICENAME"].ToString();
				if (dataSet.Tables[0].Rows[i]["OCCURDATE"] != DBNull.Value)
					model.Occurdate = Convert.ToDateTime(dataSet.Tables[0].Rows[i]["OCCURDATE"].ToString());
				if (dataSet.Tables[0].Rows[i]["WATERMIN"] != DBNull.Value)
					model.Watermin = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["WATERMIN"].ToString());
				if (dataSet.Tables[0].Rows[i]["WATERMAX"] != DBNull.Value)
					model.Watermax = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["WATERMAX"].ToString());
				if (dataSet.Tables[0].Rows[i]["WATERDATA"] != DBNull.Value)
					model.Waterdata = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["WATERDATA"].ToString());
				if (dataSet.Tables[0].Rows[i]["CREATTIME"] != DBNull.Value)
					model.Creattime = Convert.ToDateTime(dataSet.Tables[0].Rows[i]["CREATTIME"].ToString());
				resultList.Add(model);
			}
			return resultList;
		}
		/// <summary>
		/// 查询所有记录
		/// </summary>
		public List<Report_dailywater> GetAll(MySqlConnection conn, MySqlTransaction trans)
		{
			string sql = "SELECT * FROM " + custable;
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			DataSet dataSet = new DataSet();
			try
			{
				MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
				if (trans != null) sqlDA.SelectCommand.Transaction = trans;
				sqlDA.Fill(dataSet);
				if (dataSet.Tables[0].Rows.Count > 0)
				{
					List<Report_dailywater> resultList = DataSetToList(dataSet);
					return resultList;
				}
				else
				{
					return null;
				}
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
				dataSet = null;
			}
		}
		/// <summary>
		/// 查询所有记录数量
		/// </summary>
		public Int32 GetCount(MySqlConnection conn, MySqlTransaction trans)
		{
			string sql = "SELECT COUNT(*) FROM " + custable;
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			DataSet dataSet = new DataSet();
			try
			{
				MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
				if (trans != null) sqlDA.SelectCommand.Transaction = trans;
				sqlDA.Fill(dataSet);
				if (dataSet.Tables[0].Rows.Count > 0)
				{
					return Convert.ToInt32(dataSet.Tables[0].Rows[0][0].ToString());
				}
				else
				{
					return 0;
				}
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
				dataSet = null;
			}
		}
		/// <summary>
		/// 查询所有记录
		/// </summary>
		public Report_dailywater Get(MySqlConnection conn, MySqlTransaction trans, Int64 id)
		{
			string sql = "SELECT * FROM " + custable + " WHERE id='" + id + "'";
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			DataSet dataSet = new DataSet();
			try
			{
				MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
				if (trans != null) sqlDA.SelectCommand.Transaction = trans;
				sqlDA.Fill(dataSet);
				if (dataSet.Tables[0].Rows.Count > 0)
				{
					List<Report_dailywater> resultList = DataSetToList(dataSet);
					return resultList[0];
				}
				else
				{
					return null;
				}
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
				dataSet = null;
			}
		}


		/// <summary>
		/// 删除记录
		/// </summary>
		public int DeleteByOccuerdate(MySqlConnection conn, MySqlTransaction trans, DateTime occuerdate)
		{
			string sql = "DELETE FROM " + custable + " WHERE occurdate='" + occuerdate.ToString("yyyy-MM-dd HH:mm:ss") + "'";
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			try
			{
				MySqlCommand command;
				if (trans != null)
				{
					command = new MySqlCommand(sql, conn, trans);
				}
				else
				{
					command = new MySqlCommand(sql, conn);
				}
				return command.ExecuteNonQuery();
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
			}
		}


		/// <summary>
		/// 查询所有记录
		/// </summary>
		public List<Report_dailywater> GetAllByDate(MySqlConnection conn, MySqlTransaction trans, DateTime ocuordate)
		{
			string sql = "SELECT * FROM " + custable + " where occurdate='" + ocuordate.Date.ToString("yyyy-MM-dd HH:mm:ss") + "'";
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			DataSet dataSet = new DataSet();
			try
			{
				MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
				if (trans != null) sqlDA.SelectCommand.Transaction = trans;
				sqlDA.Fill(dataSet);
				if (dataSet.Tables[0].Rows.Count > 0)
				{
					List<Report_dailywater> resultList = DataSetToList(dataSet);
					return resultList;
				}
				else
				{
					return null;
				}
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
				dataSet = null;
			}
		}

		/// <summary>
		/// 查询站点日数据
		/// </summary>
		public Report_dailywater GetStationDaily(MySqlConnection conn, MySqlTransaction trans, string stationid, DateTime ocuordate)
		{
			string sql = "SELECT * FROM " + custable + " where deviceid='" + stationid + "' and occurdate='" + ocuordate.Date.ToString("yyyy-MM-dd HH:mm:ss") + "'";
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			DataSet dataSet = new DataSet();
			try
			{
				MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
				if (trans != null) sqlDA.SelectCommand.Transaction = trans;
				sqlDA.Fill(dataSet);
				if (dataSet.Tables[0].Rows.Count > 0)
				{
					List<Report_dailywater> resultList = DataSetToList(dataSet);
					return resultList[0];
				}
				else
				{
					return null;
				}
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
				dataSet = null;
			}
		}

		/// <summary>
		/// 汇总月数据
		/// </summary>
		public Decimal GetSum(MySqlConnection conn, MySqlTransaction trans, string stationid, DateTime begintime, DateTime endtime)
		{
			string sql = "SELECT SUM(waterdata) FROM " + custable + " where deviceid='" + stationid + "' and occurdate >= '" + begintime.ToString("yyyy-MM-dd HH:mm:ss") + "' and occurdate <= '" + endtime.ToString("yyyy-MM-dd HH:mm:ss") + "'";
			if (conn == null || conn.State != ConnectionState.Open)
			{
				throw new Exception("数据连接不可用");
			}
			DataSet dataSet = new DataSet();
			try
			{
				MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
				if (trans != null) sqlDA.SelectCommand.Transaction = trans;
				sqlDA.Fill(dataSet);
				if ((dataSet.Tables[0].Rows != null) && (dataSet.Tables[0].Rows.Count > 0))
				{
					return Convert.ToDecimal(dataSet.Tables[0].Rows[0][0].ToString());
				}
				else
				{
					return 0;
				}
			}
			catch (System.Data.OleDb.OleDbException ex)
			{
				throw new Exception("数据库操作异常", ex);
			}
			catch (Exception e)
			{
				throw e;
			}
			finally
			{
				dataSet = null;
			}
		}
	}
}
using ENMSLibrary.entity.enms.wayder;
using MySql.Data.MySqlClient;
using QCLibrary.exception;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ENMSLibrary.dataservice.enms.wayder
{
    public class Wayder_watersetDataService
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public Wayder_watersetDataService()
        {
        }
        /// <summary>
        /// 生成创建 增加sql语句 
        /// </summary>
        /// <param name="data">Wayder_waterset实体类</param>
        /// <returns>新建类SQL语句</returns>
        private string GenerateAddSql(Wayder_waterset data)
        {
            string ls_pre = "INSERT INTO WAYDER_WATERSET(";
            string ls_value = "VALUES(";
            if (data == null)
            {
                throw new BizException("新建的数据不能为空");
            }
            #region ID
            if (data.Id == null)
            {
            }
            else
            {
                if (data.Id.Length > 36)
                {
                    throw new BizException("ID不能超过36");
                }
                ls_pre = ls_pre + " ID";
                ls_value = ls_value + "'" + data.Id + "'";
            }
            #endregion
            #region CREATTIME
            if (data.Creattime == null)
            {
            }
            else
            {
                ls_pre = ls_pre + ", CREATTIME";
                ls_value = ls_value + ",'" + data.Creattime + "'";
            }
            #endregion
            #region WASTEWATER_LIVING
            if (data.Wastewater_living == null)
            {
            }
            else
            {
                ls_pre = ls_pre + ", WASTEWATER_LIVING";
                ls_value = ls_value + "," + data.Wastewater_living + "";
            }
            #endregion
            #region UNPOLLUTED_USED
            if (data.Unpolluted_used == null)
            {
            }
            else
            {
                ls_pre = ls_pre + ", UNPOLLUTED_USED";
                ls_value = ls_value + "," + data.Unpolluted_used + "";
            }
            #endregion
            #region UNPOLLUTED_LIVING
            if (data.Unpolluted_living == null)
            {
            }
            else
            {
                ls_pre = ls_pre + ", UNPOLLUTED_LIVING";
                ls_value = ls_value + "," + data.Unpolluted_living + "";
            }
            #endregion
            #region TOTAL_WATER
            if (data.Total_water == null)
            {
            }
            else
            {
                ls_pre = ls_pre + ", TOTAL_WATER";
                ls_value = ls_value + "," + data.Total_water + "";
            }
            #endregion
            #region INDUSTRIAL_WASTEWATER
            if (data.Industrial_wastewater == null)
            {
            }
            else
            {
                ls_pre = ls_pre + ", INDUSTRIAL_WASTEWATER";
                ls_value = ls_value + "," + data.Industrial_wastewater + "";
            }
            #endregion
            #region BEGINTIME
            if (data.Begintime == null)
            {
            }
            else
            {
                ls_pre = ls_pre + ", BEGINTIME";
                ls_value = ls_value + ",'" + data.Begintime + "'";
            }
            #endregion
            return ls_pre + ") " + ls_value + ")";
        }
        /// <summary>
        /// 添加记录
        /// </summary>
        /// <param name="model">Data.Model.Wayder_waterset实体类</param>
        /// <returns>操作所影响的行数</returns>
        public void Add(MySqlConnection conn, MySqlTransaction trans, Wayder_waterset data)
        {
            try
            {
                if (conn == null || conn.State != ConnectionState.Open)
                {
                    throw new Exception("数据连接不可用");
                }
                string sql = this.GenerateAddSql(data);
                MySqlCommand command;
                if (trans != null)
                {
                    command = new MySqlCommand(sql, conn, trans);
                }
                else
                {
                    command = new MySqlCommand(sql, conn);
                }
                command.ExecuteNonQuery();
            }
            catch (BizException be)
            {
                throw be;
            }
            catch (Exception e)
            {
                throw new BizException(e.Message);
            }
        }
        /// <summary>
        /// 将DataSet转换为List
        /// </summary>
        private List<Wayder_waterset> DataSetToList(DataSet dataSet)
        {
            List<Wayder_waterset> resultList = new List<Wayder_waterset>();
            Wayder_waterset model = null;
            for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
            {
                model = new Wayder_waterset();
                if (dataSet.Tables[0].Rows[i]["ID"] != DBNull.Value)
                    model.Id = dataSet.Tables[0].Rows[i]["ID"].ToString();
                if (dataSet.Tables[0].Rows[i]["CREATTIME"] != DBNull.Value)
                    model.Creattime = Convert.ToDateTime(dataSet.Tables[0].Rows[i]["CREATTIME"].ToString());
                if (dataSet.Tables[0].Rows[i]["WASTEWATER_LIVING"] != DBNull.Value)
                    model.Wastewater_living = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["WASTEWATER_LIVING"].ToString());
                if (dataSet.Tables[0].Rows[i]["UNPOLLUTED_USED"] != DBNull.Value)
                    model.Unpolluted_used = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["UNPOLLUTED_USED"].ToString());
                if (dataSet.Tables[0].Rows[i]["UNPOLLUTED_LIVING"] != DBNull.Value)
                    model.Unpolluted_living = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["UNPOLLUTED_LIVING"].ToString());
                if (dataSet.Tables[0].Rows[i]["TOTAL_WATER"] != DBNull.Value)
                    model.Total_water = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["TOTAL_WATER"].ToString());
                if (dataSet.Tables[0].Rows[i]["INDUSTRIAL_WASTEWATER"] != DBNull.Value)
                    model.Industrial_wastewater = Convert.ToDecimal(dataSet.Tables[0].Rows[i]["INDUSTRIAL_WASTEWATER"].ToString());
                if (dataSet.Tables[0].Rows[i]["BEGINTIME"] != DBNull.Value)
                    model.Begintime = Convert.ToDateTime(dataSet.Tables[0].Rows[i]["BEGINTIME"].ToString());
                resultList.Add(model);
            }
            return resultList;
        }
        /// <summary>
        /// 查询所有记录
        /// </summary>
        public List<Wayder_waterset> GetAll(MySqlConnection conn, MySqlTransaction trans)
        {
            string sql = "SELECT * FROM wayder_waterset";
            if (conn == null || conn.State != ConnectionState.Open)
            {
                throw new Exception("数据连接不可用");
            }
            DataSet dataSet = new DataSet();
            try
            {
                MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
                if (trans != null) sqlDA.SelectCommand.Transaction = trans;
                sqlDA.Fill(dataSet);
                if (dataSet.Tables[0].Rows.Count > 0)
                {
                    List<Wayder_waterset> resultList = DataSetToList(dataSet);
                    return resultList;
                }
                else
                {
                    return null;
                }
            }
            catch (System.Data.OleDb.OleDbException ex)
            {
                throw new Exception("数据库操作异常", ex);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                dataSet = null;
            }
        }


        /// <summary>
        /// 查询所有记录
        /// </summary>
        public Wayder_waterset GetByDate(MySqlConnection conn, MySqlTransaction trans,DateTime queryDate)
        {
            string sql = "SELECT * FROM wayder_waterset where Begintime <='"+ queryDate.ToString("yyyy-MM-dd") + "' order by Begintime desc limit 0,1 ";
            if (conn == null || conn.State != ConnectionState.Open)
            {
                throw new Exception("数据连接不可用");
            }
            DataSet dataSet = new DataSet();
            try
            {
                MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
                if (trans != null) sqlDA.SelectCommand.Transaction = trans;
                sqlDA.Fill(dataSet);
                if (dataSet.Tables[0].Rows.Count > 0)
                {
                    List<Wayder_waterset> resultList = DataSetToList(dataSet);
                    return resultList[0];
                }
                else
                {
                    return null;
                }
            }
            catch (System.Data.OleDb.OleDbException ex)
            {
                throw new Exception("数据库操作异常", ex);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                dataSet = null;
            }
        }
        /// <summary>
        /// 查询所有记录数量
        /// </summary>
        public Int32 GetCount(MySqlConnection conn, MySqlTransaction trans)
        {
            string sql = "SELECT COUNT(*) FROM wayder_waterset";
            if (conn == null || conn.State != ConnectionState.Open)
            {
                throw new Exception("数据连接不可用");
            }
            DataSet dataSet = new DataSet();
            try
            {
                MySqlDataAdapter sqlDA = new MySqlDataAdapter(sql, conn);
                if (trans != null) sqlDA.SelectCommand.Transaction = trans;
                sqlDA.Fill(dataSet);
                if (dataSet.Tables[0].Rows.Count > 0)
                {
                    return Convert.ToInt32(dataSet.Tables[0].Rows[0][0].ToString());
                }
                else
                {
                    return 0;
                }
            }
            catch (System.Data.OleDb.OleDbException ex)
            {
                throw new Exception("数据库操作异常", ex);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                dataSet = null;
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2395387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SRD-12VDC-SL-C 继电器‌接线图解

这个继电器可以使用12伏的直流电源控制250伏和125伏的交流电&#xff0c;也可以控制30伏和28伏的直流电&#xff0c;电流都为10安。 此继电器有5个引脚&#xff0c;各个的作用如下&#xff1a; 引脚4和引脚5为触点&#xff0c; 引脚1和引脚3为线圈引脚&#xff0c;接12伏的直…

基于开源链动2+1模式AI智能名片S2B2C商城小程序的企业组织生态化重构研究

摘要&#xff1a;本文以互联网时代企业组织结构变革为背景&#xff0c;探讨开源链动21模式AI智能名片S2B2C商城小程序在推动企业从封闭式向开放式生态转型中的核心作用。通过分析传统企业资源获取模式与网络化组织生态的差异&#xff0c;结合开源链动21模式的裂变机制、AI智能名…

2,QT-Creator工具创建新项目教程

目录 1,创建一个新项目 demo_01.pro(项目配置文件) 类似 CMakeList.txt widget.h(头文件)​ main.cpp(程序入口)​ widget.cpp(源文件)​ widget.ui(界面设计文件)​ 1,创建一个新项目 依次选择: 设置路径: 选择编译器: 如果选择CMake, 就会生成cmakel…

《深入解析SPI协议及其FPGA高效实现》-- 第一篇:SPI协议基础与工作机制

第一篇&#xff1a;SPI协议基础与工作机制 1. 串行外设接口导论 1.1 SPI的核心定位 协议本质 &#xff1a; 全双工同步串行协议&#xff08;对比UART异步、IC半双工&#xff09;核心优势 &#xff1a; 无寻址开销&#xff08;通过片选直连&#xff09;时钟速率可达100MHz&…

2025年5月6日 飞猪Java一面

锐评 鸡蛋鸭蛋荷包蛋 我的蛋仔什么时候才能上巅峰凤凰蛋? 1. 如何保证数据库数据和redis数据一致性 数据库数据和 redis 数据不一致是在 高并发场景下更新数据的情况 首先我们要根据当前保持数据一致性的策略来决定方案 如果采取的策略是先删除缓存 更新数据库 我们假设现…

【AI论文】推理语言模型的强化学习熵机制

摘要&#xff1a;本文旨在克服将强化学习扩展到使用 LLM 进行推理的主要障碍&#xff0c;即策略熵的崩溃。 这种现象在没有熵干预的RL运行中一直存在&#xff0c;其中策略熵在早期训练阶段急剧下降&#xff0c;这种探索能力的减弱总是伴随着策略性能的饱和。 在实践中&#xff…

Ubuntu22.04 安装 IsaacSim 4.2.0

1. 从官网下载 IsaacSim 4.2.0 安装包 https://download.isaacsim.omniverse.nvidia.com/isaac-sim-standalone%404.2.0-rc.18%2Brelease.16044.3b2ed111.gl.linux-x86_64.release.zip 2. 查阅 Workstation Installation 安装方式 Workstation Installation — Isaac Sim Do…

Java代码重构:如何提升项目的可维护性和扩展性?

Java代码重构&#xff1a;如何提升项目的可维护性和扩展性&#xff1f; 在Java开发领域&#xff0c;随着项目规模的不断扩大和业务需求的频繁变更&#xff0c;代码的可维护性和扩展性逐渐成为了项目成功的关键因素。代码重构作为一种优化代码质量的重要手段&#xff0c;能够在…

《Python语言程序设计》2018 第4章第9题3重量和价钱的对比,利用第7章的概念来解答你

利用类来解答这个问题。 pack1, price1 50, 24.59 pack2, price2 25, 11.99class result:def __init__(self,pack,price):self.pack packself.price pricedef set_pack(self):return self.packdef set_price(self):return self.pricedef get_result(self):return self.pric…

在IIS上无法使用PUT等请求

错误来源&#xff1a; chat:1 Access to XMLHttpRequest at http://101.126.139.3:11000/api/receiver/message from origin http://101.126.139.3 has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource. 其实我的后…

数据基座觉醒!大数据+AI如何重构企业智能决策金字塔(上)

1. 数据金字塔的千年进化史 1.1 从地窖到云端的存储革命 某家电企业在2010年遭遇库存危机时&#xff0c;市场部门需要三天才能从纸质单据中统计出全国滞销型号。当他们的数据工程师在2023年轻声唤醒对话式分析机器人&#xff0c;同样的需求响应时间缩短至9秒。 数据分层架构的…

使用 DeepSeek API 搭建智能体《无间》- 卓伊凡的完整指南 -优雅草卓伊凡

使用 DeepSeek API 搭建智能体《无间》- 卓伊凡的完整指南 -优雅草卓伊凡 作者&#xff1a;卓伊凡 前言&#xff1a;为什么选择 DeepSeek API&#xff0c;而非私有化部署&#xff1f; 在开始搭建智能体之前&#xff0c;我想先说明 为什么推荐使用 DeepSeek API&#xff0c;而…

FPGA纯verilog实现MIPI-DSI视频编码输出,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 MIPI 编解码方案 3、设计思路框架工程设计原理框图FPGA内部彩条RGB数据位宽转换RGB数据缓存MIPI-DSI协议层编码MIPI-DPHY物理层串化MIPI-LVDS显示屏工程…

手写字魔法消除3:深度学习PmrNet神经网络实现图片修复(含训练代码、数据集和GUI交互界面)

第一步&#xff1a;PmrNet介绍 PmrNet是一种基于U-Net架构改进的深度学习网络&#xff0c;来自于论文《Practical Deep Raw Image Denoising on Mobile Devices》&#xff0c;这个网络聚焦于在移动设备上实现高效的原始图像&#xff08;RAW&#xff09;去噪&#xff08;本文用来…

opencv使用经典bug

opencv经典bug 1.bug介绍2.解决方案 1.bug介绍 D:\anaconda3\envs\yolo11s\python.exe F:\BYSJ\LX\yolov11-main\OCR_plateRecognition\plateRevise.py Traceback (most recent call last): File "F:\BYSJ\LX\yolov11-main\OCR_plateRecognition\plateRevise.py", l…

计算机基础——宏病毒防御与网络技术

文章目录 宏病毒详解与防范措施宏病毒简介宏病毒的特点宏病毒的传播途径宏病毒的防范措施宏病毒的检测与清除 自治计算机与自治系统解析什么是自治计算机&#xff1f;技术特点 自治系统&#xff08;Autonomous System, AS&#xff09;特点&#xff1a;自治系统类型 总结&#x…

Python uv包管理工具使用详解

一、UV 工具概述 ​UV​ 是由 Astral 团队&#xff08;Ruff 工具开发者&#xff09;用 Rust 编写的新一代 Python 包管理器&#xff0c;旨在替代传统工具链&#xff08;如 pip、virtualenv、poetry 等&#xff09;&#xff0c;提供以下核心优势 &#xff1a; ​极速性能​&a…

基于微信小程序的云校园信息服务平台设计与实现(源码+定制+开发)云端校园服务系统开发 面向师生的校园事务小程序设计与实现 融合微信生态的智慧校园管理系统开发

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

大语言模型的技术原理与应用前景:从Transformer到ChatGPT

目录 摘要 1. 引言 2. Transformer架构核心原理 2.1 自注意力机制 2.2 位置编码 2.3 前馈神经网络 3. 从GPT到ChatGPT的演进 3.1 GPT系列模型架构 3.2 训练流程优化 4. 应用场景与案例分析 4.1 代码生成 4.2 文本摘要 4.3 问答系统 5. 挑战与未来方向 5.1 当前技…

生成式人工智能:重构软件开发的范式革命与未来生态

引言 生成式人工智能&#xff08;GenAI&#xff09;正以颠覆性力量重塑软件开发的底层逻辑。从代码生成到业务逻辑设计&#xff0c;从数据分析到用户交互&#xff0c;GenAI通过其强大的推理能力与场景适应性&#xff0c;将传统开发流程的“复杂工程”转化为“敏捷实验”&#…