C# & nHibernate連線MySQL
目錄
C#連線MySQL
C#連線
首先在VS專案中新增MySql.Data引用,瀏覽
具體位置一般在C:\Program Files (x86)\MySQL\Connector NET\Assemblies\v4.0(根據專案框架進行選擇)
namespace CSharp連線 { class Program { static void Main(string[] args) { string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=**;password=**;sslmode=none;"; MySqlConnection conn = new MySqlConnection(connectStr); try { conn.Open(); Console.WriteLine("建立連線"); } catch(Exception e) { Console.WriteLine(e); } finally { conn.Close(); } Console.ReadKey(); } } }
增刪改查方法
MySqlConnection
MySqlCommand
MySqlDataReader(獲取查詢資料)
MySqlCommand.ExecuteReader() 查詢
MySqlCommand.ExecuteNonQuery()插入刪除修改
MySqlCommand.ExecuteScalar()查詢,返回單個值
//查詢 string sql = "select * from users"; MySqlCommand cmd = new MySqlCommand(sql,conn); MySqlDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { Console.WriteLine(reader[0].ToString());//讀取該行的第一個欄位 object型別 //也可以 reader.GetInt32(0) 欄位索引 返回int // reader.GetString(1)則返回 string // reader.GetInt32("欄位名") GetString("欄位名") } //插入 string sqlinsert = "insert into users(username,password) values('sfsdf','fssdf') "; cmd = new MySqlCommand(sqlinsert, conn); int result=cmd.ExecuteNonQuery();//返回影響的記錄數 //單個查詢 string sqlScalar="select count(*) from users" cmd = new MySqlCommand(sqlScalar, conn); object o = cmd.ExecuteScalar(); int count = Convert.ToInt32(o.ToString()); Console.WriteLien(count);
NHibernate與MySql互動
(主要是可以像操作物件一樣去操作資料庫的資料)
配置
專案配置,開啟專案屬性,修改好程式集和名稱空間的名稱
一樣的新增MySql.Data引用.dll引用
引入NHibernate.dll 可以在解決方案資源管理器中對專案右鍵管理NuGet中搜索NHibernate直接下載
如果無法下載就到官網直接下載,解壓找到這個檔案新增到專案的引用即可。
xml檔案配置,參考官網教程
新增一個新檔案命名為 hibernate.cfg.xml 一定得這麼命名,屬性設定為始終複製
<?xml version="1.0" encoding="utf-8" ?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property> <!--資料庫版本 MySQL5--> <property name="connection.driver_class">NHibernate.Driver.MySQLDataDriver</property> <!--使用的資料庫 MySQLData--> <property name="connection.connection_string">Server=localhost;Database=mygamedb;User ID=**;Password=**;SslMode=none;</property> <!--配置連線資料庫的資訊--> <property name="show_sql">true</property> </session-factory> </hibernate-configuration>
對映
資料庫裡一個表對應一個類,如users表建一個類User(命名自取),我把這些類放在一個資料夾下便於管理
namespace Photon.Model
{
public class User
{
public virtual int Id { get; set; }
public virtual string Username { get; set; }
public virtual string Password { get; set; }
public virtual DateTime Registerdate { get; set; }
}
}
建一個對映的xml檔案,命名最好和類名一致比較好找,字尾必須是 類名.hbm.xml ,可以把對映的xml都放在一個資料夾下
屬性的生成操作設定為嵌入的資源 和類打包到程式集的
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Photon"
namespace="Photon.Model">
<!--修改成對應的程式集和名稱空間名稱-->
<class name="User" table="users"><!--name是類名,table就是資料庫的表名-->
<id name="Id" column="id" type="Int32"><!--主鍵,欄位名,資料型別-->
<generator class="native" /><!--自動增長-->
</id>
<property name="Username" column="username" type="String"/>
<property name="Password" column="password" type="String"/>
<property name="Registerdate" column="registerdate" type="Date"/>
</class>
</hibernate-mapping>
建立session 增刪改查
Session.Save();
Session.Delete()
Session.Update()
using NHibernate;
using NHibernate.Cfg;
using Photon.Model;
namespace Photon
{
class Program
{
static void Main(string[] args)
{
var configuration = new Configuration();
configuration.Configure();//解析hibernate.cfg.xml
configuration.AddAssembly("Photon");
Console.WriteLine("成功");
ISessionFactory sessionFactory = null;//會話工廠
ISession session = null;
try
{
sessionFactory= configuration.BuildSessionFactory();
session =sessionFactory.OpenSession();//開啟一個跟資料庫的會話
User user = new User() { Username = "user1", Password = "user1" };
session.Save(user);
}
catch(Exception e)
{
Console.WriteLine(e);
}
finally
{
if(session!=null)
{
session.Close();
}
if(sessionFactory!=null)
{
sessionFactory.Close();
}
}
Console.ReadKey();
}
}
}
建立事務
sessionFactory= configuration.BuildSessionFactory();
session =sessionFactory.OpenSession();//開啟一個跟資料庫的會話
ITransaction transaction=session.BeginTransaction();//開啟事務
User user2 = new User() { Username = "user2", Password = "user2" };
User user1 = new User() { Username = "user1", Password = "user1" };
session.Save(user2);
session.Save(user1);
transaction.Commit();//事務提交,只有上面兩個save操作都成功了才會寫入資料庫
transaction.Dispose();//也要關閉
相關推薦
C# & nHibernate連線MySQL
目錄 C#連線 配置 對映 建立事務 C#連線MySQL C#連線 首先在VS專案中新增MySql.Data引用,瀏覽 具體位置一般在C:\Program Files (x86)\MySQL\Connector NET\Assemblies
簡單講一下C語言連線MySQL資料庫
1.首先你得將MySQL安裝上 apt-get install mysql-server (mysql -uroot -p 登陸測試) 2.安裝連結庫 apt-get install libmysqlclient-dev 3.進行資料庫的建立,例如: cre
Linux程式設計——C語言連線MySQL資料庫
MySQL是Linux系統下廣泛使用的開源免費資料庫,是Linux應用程式資料儲存的首選。許多釋出的Linux版本是自帶MySQL的,但是也有些釋出版本是不帶的(比如我現在用的Ubuntu),那就需要手動安裝。在Synaptic Packet Management中搜索“m
C語言連線mysql簡單查詢例項入門-mysql_init,mysql_real_connect,mysql_query,mysql_close等
一: 分配或初始化與mysql_real_connect()相適應的MYSQL物件。用mysql_init()函式。 MYSQL *mysql_init(MYSQL *mysql) 描述 分配或初始化與mysql_real_connect()相適應的MYSQL物件。如
Linux C語言連線MySQL 增刪改查操作
Linux下想要測試mysql和memcached的效能,因為是伺服器只能通過終端連線,所以考慮用C語言寫測試程式碼。於是研究了把C怎麼連線MySQL以及增刪改查的程式碼。安裝mysql-client或者編譯原始碼安裝mysql後,會有支援C語言寫客戶端的標頭檔案和庫檔案
C語言連線MySQL資料庫
1 配置 win7 32bit,mysql5.5,vs2008 vc路徑設定,工具 -> 選項 -> 專案和解決方案 -> VC++ 路徑,Platform選擇Win32,然後 Include files中新增 D:\Program F
c#遠端連線mysql資料庫
,安裝好後,將MySQLDriverCS.dll通過新增引用的方式,新增到專案中。 2、設定mysql資料庫為允許遠端訪問,採用如下程式碼: 格式:grant 許可權 on 資料庫名.表名 使用者@登入主機 identified by "使用者密碼";grant selec
C# FluentNHibernate 連線mysql資料庫
首先需要安裝FluentNHibernate包,右鍵工程檔案 右鍵專案工程,如下圖,在開啟的視窗中下載NHibernate包,並安裝。 程式程式碼: 連線資料庫: using FluentNHibernate.Cfg; using Fluen
C# NPoco 連線 Mysql 測試,包含隨機生成姓名。
using System; using System.Collections.Generic; using System.Configuration; using System.Data.Common; using System.Diagnostics; using Syst
通過Nhibernate連線Mysql資料庫
通過nhibernate連線MySql 1,新建一個工程 引入MySql.Data 和 Nhibernate 並在工程下新建一個Xml 名字為hibernate.cfg.xml 複製到目錄設定為始終複製 ! 程式碼如下 <?xml version="1
用C api 連線mysql資料庫的 開發例項
1. 下載mysql c connector 安裝包; 有兩種方法: 1 下載tar檔案, 將其中的的 lib, include , bin 都放在 /usr/local 相應的目錄下; 2. 也可配置連
C#連線Mysql資料庫NHibernate
一、什麼是NHibernate? NHibernate是一個面向.NET環境的物件/關係資料庫對映工具。物件/關係資料庫對映(object/relational mapping,ORM)這個術語表示一種技術,用來把物件模型表示的物件對映到基於SQL的關係模型資料結構中去
Linux 下c語言連線與操作MYSQL
1.安裝mysql 2.安裝mysql.h函式庫 sudo apt-get install libmysqlclient-dev 3. mysql_real_connect() 連線一個mysql伺服器 語法如下 MYSQL *mysql_real_connect
vs2013下c++連線mysql資料庫
本文使用的是mysql提供的api來進行連線,這樣使用比較方便。 開發環境:mysql 5.6+vs2013+win8.1作業系統 步驟1: 要使用mysql的api,需要mysql安裝目錄下include 和 lib 兩個資料夾的東西,如果你用的是wamp或者php
C++ ODBC方式連線MySQL(終極詳細)
因為我自己弄了好久,我不想讓別人也弄這麼久 1.電腦安裝mysql(shell版的和Install的都行,我的shell,64位) 2.配置設定(首先找到MySQL的路徑,我是手動存放在 C:\Program Files\MySQL)然後你會發現目錄下有兩個資料夾 include和lib
Linux下的C#連線Mysql資料庫
今天在嘗試在 Linux 系統下使用C#連線資料庫,發現網上這方面的資訊很少,所以就寫一篇部落格記錄一下。 Linux下這裡使用的是mono。 首先是缺少Mysql.Data.dll這個庫的,所以需要安裝 https://dev.mysql.com/downloads/connector/net/ 安
Linux C 連線mysql
安裝完mysql是還不可以的,需要額外安裝linux下操作mysql依賴的庫,安裝命令如下: sudo apt-get install libmysqlclient-dev 安裝完後即可對mysql進行操作。 因為最後編譯的時候需要用到mysql的路徑,如果不知道mysql的路徑在哪
C++ API方式連線mysql資料庫實現增刪改查
轉自 http://www.bitscn.com/pdb/mysql/201407/226252.html 一、環境配置 1,裝好mysql,新建一個C++控制檯工程(從最簡單的弄起,這個會了,可以往任何c++工程移植),在vs2010中設定,工程--屬性--VC++目
C# 連線mysql,連線後顯示多個執行緒池
資料庫連線字串 return string.Concat(new string[] { &n
C# 連線mysql,即使關閉連線,Mysql狀態依然是sleep
Aborted connection 245 to db: '資料庫' user: '使用者' host: '--IP地址--' (Got timeout reading communication packets)For more information, see Help and Support