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;//整数秒