求一个数据库插入方法InsertData

baidu_25312913 2017-03-06 04:43:42
/// <typeparam name="T">表名</typeparam>
/// <typeparam name="TS">表结构(以枚举定义表中字段)</typeparam>
/// <typeparam name="I">具体字段内容(实体类)</typeparam>
public bool InsertData<T, TS, I>(T a, TS b, I c)
{
//这里不知道怎么获取TS枚举类型(已经知道字符串类型枚举名)
//循环枚举TS里面的内容,对应实体I中的值,插入表T中
return true;
}

///所有表名放在DeviceTableName中
public enum DeviceTableName
{
T_Device_UserManage = 1,//用户表
T_Device_Deparment = 2,//部门表
T_Device_Usertype = 3,//用户类型表
}

///每个表对应字段存放在对应枚举中
public enum T_Device_UserManage
{
F_UserId = 0,
F_UserName = 1,
F_UserPwd = 2,
F_UserDeparment = 3,
F_UserType = 4,
F_IsUsed = 5,
}
public enum T_Device_Deparment
{
F_Deparment_ID = 0,
F_Deparment_Name = 1,
F_Deparment_Manage = 2,
F_Deparment_Leader = 3,
F_Deparment_Creater = 4,
F_Deparment_CreaterDate = 5,
F_IsUsed = 6,
}
public enum T_Device_Usertype
{
F_TypeId = 0,
F_TypeName = 1,
F_TypeNameEn = 2,
F_TypeManage = 3,
F_IsUsed = 4,
}

//具体实体对象,用于赋值
public class UserRegister
{
private int _userID = 0;
private string _userName = "";
private string _userPwd = "";
private string _userDeparment = "";
private string _userType = "";
……
}


///插入表时,直接传入表名、表结构、插入内容
private void btn_Register_Click(object sender, EventArgs e)
{

UserRegister userRegister = new UserRegister();
userRegister.UserID = Convert.ToInt32(txt_UserID.Text);
userRegister.UserName = txt_UserName.Text;
userRegister.UserPwd = txt_UserPwd.Text;
userRegister.UserDeparment = cbx_UserDeparment.Text;
userRegister.UserType = cbx_UserType.Text;

T_Device_UserManage t_device_userManage = new T_Device_UserManage();
bool bl = InsertData(DeviceTableName.T_Device_UserManage, t_device_userManage, userRegister);
}


...全文
239 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_37348877 2017-03-06
  • 打赏
  • 举报
回复
没看懂
baidu_25312913 2017-03-06
  • 打赏
  • 举报
回复
这里 要注意下,实体对象UserRegister中的属性,一定要与对应枚举表中的顺序一致,否则插入字符串的内容会混乱。
baidu_25312913 2017-03-06
  • 打赏
  • 举报
回复
居然被我自己搞定了 public bool InsertData<T, TS, I>(T a, TS b, I c) { string strSql = "INSERT INTO " + a + "("; Type type = b.GetType(); foreach (var v in Enum.GetValues(type)) { strSql += v.ToString() + ","; } strSql = strSql.Substring(0, strSql.Length - 1); strSql += ") VALUES("; PropertyInfo[] propertys = c.GetType().GetProperties(); foreach (var v in propertys) { strSql += "'" + v.GetValue(c, null) + "',"; } strSql = strSql.Substring(0, strSql.Length - 1); strSql += ")"; return false; }
内容概要:本文研究了计及需求侧响应的日前、日内两阶段鲁棒备用优化问题,提出了一种基于数据驱动的两阶段分布鲁棒优化方法,结合1-范数和∞-范数构造不确定性集合,有效刻画风电、光伏出力及负荷等多重不确定因素的波动特性。研究构建了电热综合能源系统的联合优化模型,通过协调日前调度计划与日内实时调整,充分发挥需求侧响应资源的灵活调节能力,提升系统在不确定性环境下的备用充裕性与运行鲁棒性,并采用Matlab进行建模与仿真验证,结果表明该方法在保障系统安全的同时显著改善了经济性。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员,以及从事新型电力系统调度、综合能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于高比例可再生能源接入背景下电力系统备用容量的优化配置;②为综合能源系统在多重不确定性下的鲁棒调度提供决策支持;③支撑需求侧资源参与系统辅助服务的机制设计与仿真验证,推动源荷互动协调发展。; 阅读建议:建议读者结合Matlab代码深入理解两阶段鲁棒优化的建模过程,重点关注不确定性集构建、鲁棒约束转化及C&CG等求解算法的实现细节,可进一步拓展至其他分布鲁棒优化形式或耦合更多能源形式的综合能源系统场景。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧