求一个数据库插入方法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);
}


...全文
186 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; }

110,533

社区成员

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

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

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