NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。
可以通过VS的NuGet程序包搜索NHibermate通过安装引用。很多的依赖程序包都可以通过NuGet来获取到,包括上次引入的Mysql.Data.dll。
using System; using MySql.Data.MySqlClient; namespace Mysql_Conn { class Program { static void Main(string[] args) { string conStr = "server=127.0.0.1;port=3306;database=chicai_note;user=root;password="; MySqlConnection conn = new MySqlConnection(conStr); try { conn.Open(); string checkSql = "select * from chicai_config where user_id=@id and name=@name"; MySqlCommand checkCom = new MySqlCommand(checkSql, conn); checkCom.Parameters.AddWithValue("id", 2); checkCom.Parameters.AddWithValue("name", "jjj"); MySqlDataReader read = checkCom.ExecuteReader(); if (read.Read()) { Console.WriteLine("验证正确"); } } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadKey(); } } }
在Sql语句中,使用@变量名来标志要填充的区域,然后构建出MysqlCommand,在用这个Command的Parameters的添加参数方法AddWithValue("标志名",值)来替换标志的参数。
所谓查询单个数据指的是查询的数据中只有一行一列
using System; using MySql.Data.MySqlClient; namespace Mysql_Conn { class Program { static void Main(string[] args) { string conStr = "server=127.0.0.1;port=3306;database=chicai_note;user=root;password="; MySqlConnection conn = new MySqlConnection(conStr); try { conn.Open(); string countSql = "select count(*) from chicai_config"; MySqlCommand countCom = new MySqlCommand(countSql, conn); object res = countCom.ExecuteScalar();//直接获取到要的数据 Console.WriteLine(res.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadKey(); } } }
使用MysqkCommand的ExecuteScalar()方法直接获取到想要的那一个数据
using System; using MySql.Data.MySqlClient; namespace Mysql_Conn { class Program { static void Main(string[] args) { string conStr = "server=127.0.0.1;port=3306;database=chicai_note;user=root;password="; MySqlConnection conn = new MySqlConnection(conStr); try { conn.Open(); string InsertSql = "insert into chicai_config values(3,'sdsdsd',520)"; MySqlCommand InsertCom = new MySqlCommand(InsertSql, conn); int result = InsertCom.ExecuteNonQuery();//执行将会返回影响的行数 Console.WriteLine("影响的行数" + result); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadKey(); } } }
使用MysqlCommand的ExecuteNonQuery执行一些非查询的sql语句,返回的结果是影响的行数。
using System; using MySql.Data.MySqlClient; namespace Mysql_Conn { class Program { static void Main(string[] args) { string conStr = "server=127.0.0.1;port=3306;database=chicai_note;user=root;password="; MySqlConnection conn = new MySqlConnection(conStr); try { conn.Open(); string sql = "select * from chicai_config";//要执行的sql语句 MySqlCommand com = new MySqlCommand(sql,conn);//利用MysqlCommand创建命令 MySqlDataReader reader = com.ExecuteReader();//查询多条数据用的 while (reader.Read()) {//一行行进行读取 Console.WriteLine(reader[0].ToString() + reader.GetString("name").ToString()); } } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadKey(); } } }
MysqlCommand类含有执行不同类型的sql的方法,其中ExecuteReader()是读取多行结果的。可以通过MysqlDataReader的索引方式和Get***()方法传递字段的方式来获取当前行的列数据。
安装MysqlConnectorNet,在里面找到Mysql.Data.dll引进到项目中
using System; using MySql.Data.MySqlClient; namespace Mysql_Conn { class Program { static void Main(string[] args) { string conStr = "server=127.0.0.1;port=3306;database=chicai_note;user=root;password="; MySqlConnection conn = new MySqlConnection(conStr); try { conn.Open(); Console.WriteLine("连接成功"); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadKey(); } } }
//使用属性,把域改变了,使用v时用的就是一个副本 public Vector3 v { get; set; } void Start () { Vector3 i = v;//返回一个副本,用临时量i接住 i.y = 100; v = i;//将i的副本赋值给v //v.x = 20;报错的,不是变量,v返回一个副本 i.x = 1314;//修改i的值和v没有半毛钱关系 }
结构体是值类型,存放在栈空间中。
定义一个新的类型时,比如说,类、枚举类型、委托类型等,新建一个单独的文件来承载并给予合适的名字,这样可以使项目更友好更规范。
TimeSpan是一个描述两个时间的精确差值的结构体
通过获取距离当天开始的时间差值来获取精确的时间点
TimeSpan time = DateTime.Now.TimeOfDay; time.TotalHours;//双精度的小时数 time.TotalMinutes;//双精度的分钟数 time.TotalSeconds;//双精度的秒数
DateTime now = DateTime.Now; now.Hour;//整点小时 now.Minute;//整数分钟 now.Second;//整数秒