数据库管理器学习记录
来源:互联网 发布:立体照片制作软件 编辑:程序博客网 时间:2024/05/22 13:12
public class MySqlManager{ //数据库连接对象 private MySqlConnection _conn; //数据库名字 private string _dbName = "test"; //数据库源 private string _dataSource = "127.0.0.1"; //用户名 private string _userid = "root"; //密码 private string _pws = "123456"; //连接 public void Connect() { string str = string.Format("Server = {0};UserID = {1};Password ={2};Database = {3}",_dataSource,_userid,_pws,_dbName); _conn = new MySqlConnection(str); } //执行非查询命令 public void ExecNonQuery(string sql) { MySqlCommand command = new MySqlCommand(sql, _conn); _conn.Open(); command.ExecuteNonQuery(); command.Dispose(); _conn.Close(); } //执行查询命令 public List<T> ExecQuery<T>(string sql) { List<T> objList = new List<T>(); //创建一个mysql命令 MySqlCommand command = new MySqlCommand(sql, _conn); //打开数据库 _conn.Open(); MySqlDataReader reader = null; //获取数据库读取器 reader = command.ExecuteReader(); //开始读 while(reader.Read()) { T obj = Activator.CreateInstance<T>(); FieldInfo[] fields = typeof(T).GetFields(); for (int i = 0; i < reader.FieldCount; i++) { ReadField<T>(obj, fields[i], reader, i); } objList.Add(obj); } reader.Close(); _conn.Close(); command.Dispose(); return objList; } public Dictionary<int,T> ExecQueryDic<T> (string sql) { Dictionary<int, T> objList = new Dictionary<int, T>(); MySqlCommand command = new MySqlCommand(sql, _conn); MySqlDataReader reader = null; _conn.Open(); reader = command.ExecuteReader(); while(reader.Read()) { T obj = Activator.CreateInstance<T>(); FieldInfo[] fields = typeof(T).GetFields(); for (int i = 0; i < fields.Length; i++) { ReadField<T>(obj, fields[i], reader,i); } FieldInfo fieldInfo = obj.GetType().GetField("id"); int id = (int)fieldInfo.GetValue(obj); if(!objList.ContainsKey(id)) { objList.Add(id, obj); } } reader.Close(); _conn.Close(); command.Dispose(); return objList; } //从数据库中读取数据 并赋值 private void ReadField<T>(T obj,FieldInfo fieldInfo,MySqlDataReader reader,int ordinal) { Type type = fieldInfo.FieldType; System.Object value = null; if (type == typeof(int)) value = reader.GetFieldValue<int>(ordinal); else if (type == typeof(byte)) value = reader.GetFieldValue<byte>(ordinal); else if (type == typeof(uint)) value = reader.GetFieldValue<uint>(ordinal); else if (type == typeof(string)) value = reader.GetFieldValue<string>(ordinal); else if (type == typeof(float)) value = reader.GetFieldValue<float>(ordinal); fieldInfo.SetValue(obj, value); }}
阅读全文
0 0
- 数据库管理器学习记录
- Qt 数据库学习记录
- 数据库学习记录20150605
- 数据库学习记录806
- 数据库学习记录809
- 数据库学习记录-索引
- 数据库学习记录--通信协议
- 数据库学习记录
- 数据库学习记录
- 【记录】存储管理器
- java学习记录,连接数据库
- 【数据库】mysql 索引学习记录
- PetShop学习记录----数据库访问
- javaWeb学习记录:数据库:事务
- Access数据库的学习记录
- 数据库学习记录--复索引
- jdbc链接数据库学习记录
- Spring学习历程---Hibernate访问数据库可脱离事务管理器
- SSH和SSM对比
- Android源码博文集锦1
- numpy与pandas的数据结构互转:ndarray、series、dataframe
- Chrome 控制台新玩法-console显示图片以及为文字加样式
- SELECT
- 数据库管理器学习记录
- 将byte[]转化十六进制的字符串 要进行与运算的原因
- awk使用
- R语言iMooc笔记
- 使用IDEA快速开发Springboot入门demo
- AlarmManager小例子
- SOC安全运营中心
- Fiend
- tensorflow simple