1、Dapper中Sybase的连接字符串
<add key="SybaseConnStr" value="Data Source=192.168.31.163; Port=5000; Database=pubs2; Uid=sa; Pwd=liangliang;Charset=iso_1;"/>
2、需要引用的dll
1)通过Nuget引用
Nuget搜索Sybase,找到合适版本的AseClient。
2)在Sybase安装目录
在D:\SAP\DataAccess或D:\SAP\DataAccess64目录找到对应版本的。
3、创建数据库连接
public static IDbConnection SybaseConn { get { try { return new AseConnection(System.Configuration.ConfigurationManager.AppSettings["SybaseConnStr"]); } catch (Exception ex) { logger.Error(ex.Message); } return null; } }
4、增删改查
//增 using (IDbConnection conn = SybaseConn) { Users user = new Users(); user.Name = "CNKI"; user.Age = 38; string sqlCommandText = @"INSERT INTO USERS(Name,Age)VALUES(@Name,@Age)"; int result = conn.Execute(sqlCommandText, user); } //批量增 using (IDbConnection conn = SybaseConn) { List<Users> list = new List<Users>(); for (int i = 0; i < 5; i++) { Users user = new Users(); user.Name = "CNKI"; user.Age = 38; list.Add(user); } string sqlCommandText = @"INSERT INTO USERS(Name,Age)VALUES(@Name,@Age)"; int result = conn.Execute(sqlCommandText, list); } //删 using (IDbConnection conn = SybaseConn) { Users user = new Users(); user.ID = 1; string sqlCommandText = @"DELETE FROM USERS WHERE ID=@ID"; int result = conn.Execute(sqlCommandText, user); } //改 using (IDbConnection conn = SybaseConn) { Users user = new Users(); user.ID = 2; user.Name = "CNKI"; user.Age = 18; string sqlCommandText = @"UPDATE USERS SET Age=@Age WHERE ID=@ID"; int result = conn.Execute(sqlCommandText, user); } //查 using (IDbConnection conn = SybaseConn) { string sqlCommandText = @"SELECT * FROM USERS WHERE ID=@ID"; Users user = conn.Query<Users>(sqlCommandText, new { ID=2 }).FirstOrDefault(); }
5、Dapper中的DynamicParameters动态参数集合类
using (IDbConnection conn = SybaseConn)
{
string sqlCommandText = @"SELECT * FROM USER WHERE ID=@ID";
var p = new DynamicParameters();
p.Add("@ID", 1);
User user2 = conn.Query<User>(sqlCommandText,p).FirstOrDefault();
}
6、Dapper事物操作
[TestMethod] public void TestDapperTransaction() { using (IDbConnection conn = SybaseConn) { conn.Open(); IDbTransaction trans = conn.BeginTransaction(); int row = conn.Execute(@"update t set name='cjavapy.com' where id=@id", new { id = 3 }, trans); row += conn.Execute("delete from t where id=@id", new { id = 5 }, trans); for (int i = 0; i < 100; i++) { conn.Execute(@"insert t(id, name) values (@id, @name)", new { id = i, name = "cjavapy.com" + i }); } trans.Commit(); } }