コード例 #1
0
ファイル: SqlserverTest.cs プロジェクト: newdayslu/SqlCommon
        public void TestUpdate()
        {
            var connection = new System.Data.SqlClient.SqlConnection(@"Data Source=DESKTOP-9IS2HA6\SQLEXPRESS;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=1024");

            using (IDbContext db = new DbProxyContext(connection, DbContextType.SqlServer))
            {
                var row = 0;
                db.Open();//自动提交
                var entity1 = new Student()
                {
                    Id         = 22,
                    Balance    = 50,
                    BirthDay   = DateTime.Now,
                    Score      = Grade.E,
                    IsDelete   = true,
                    Name       = "faker",
                    Version    = "test",
                    CreateTime = DateTime.Now,
                };
                var entity2 = new Student()
                {
                    Id         = 24,
                    Balance    = 50,
                    BirthDay   = DateTime.Now,
                    Score      = Grade.E,
                    IsDelete   = true,
                    Name       = "faker",
                    Version    = "test",
                    CreateTime = DateTime.Now,
                };
                //1.根据主键字段更新所有列
                row = db.From <Student>().Update(entity1);
                //2.忽略指定列
                row = db.From <Student>().Filter(s => s.Version).Update(entity2);
                //3.根据指定条件更新所有列
                var oldVersion = "110";
                row = db.From <Student>()
                      .Where(a => a.Id == 25 && a.Version == oldVersion)
                      .Update(entity1);
                //4.批量修改,不推荐使用,
                var students = new List <Student>();
                students.Add(entity1);
                students.Add(entity2);
                row = db.From <Student>().Filter(a => a.CreateTime).Update(students);
                //5.更新指定字段
                row = db.From <Student>()
                      .Update(s => new Student()
                {
                    Id    = 26, //默认通过id更新,可以用where来重置默认
                    Score = Grade.F,
                    Name  = "hihi"
                });
                //6.动态更新字段
                var charat = "f";
                row = db.From <Student>()
                      .Set(a => a.Balance, 100, 1 > 2)                            //false
                      .Set(a => a.IsDelete, true)
                      .Set(a => a.Balance, a => a.Balance + 200, 1 < 2)           //true
                      .Set(a => a.Name, a => SqlFun.Replace(a.Name, "b", charat)) //true
                      .Where(a => a.Id == 27)
                      .Update();
            }
        }
コード例 #2
0
ファイル: PgsqlTest.cs プロジェクト: newdayslu/SqlCommon
        public void TestUpdate()
        {
            var connection = new Npgsql.NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=1024;Database=test;");

            using (IDbContext db = new DbProxyContext(connection, DbContextType.Postgresql))
            {
                var row = 0;
                db.Open();//自动提交
                var entity1 = new Student()
                {
                    Id         = 22,
                    Balance    = 50,
                    BirthDay   = DateTime.Now,
                    Score      = Grade.E,
                    IsDelete   = true,
                    Name       = "faker",
                    Version    = "test",
                    CreateTime = DateTime.Now,
                };
                var entity2 = new Student()
                {
                    Id         = 24,
                    Balance    = 50,
                    BirthDay   = DateTime.Now,
                    Score      = Grade.E,
                    IsDelete   = true,
                    Name       = "faker",
                    Version    = "test",
                    CreateTime = DateTime.Now,
                };
                //1.根据主键字段更新所有列
                row = db.From <Student>().Update(entity1);
                //2.忽略指定列
                row = db.From <Student>().Filter(s => s.Version).Update(entity2);
                //3.根据指定条件更新所有列
                var oldVersion = "110";
                row = db.From <Student>()
                      .Where(a => a.Id == 25 && a.Version == oldVersion)
                      .Update(entity1);
                //4.批量修改,不推荐使用,
                var students = new List <Student>();
                students.Add(entity1);
                students.Add(entity2);
                row = db.From <Student>().Filter(a => a.CreateTime).Update(students);
                //5.更新指定字段
                db.From <Student>()
                .Update(s => new Student()
                {
                    Id    = 26, //默认通过id更新,可以用where来重置默认
                    Score = Grade.F,
                    Name  = "hihi"
                });
                //6.动态更新字段
                try
                {
                    var charat = "f";
                    db.From <Student>()
                    .Set(a => a.Balance, 100, 1 > 2)                                //false
                    .Set(a => a.IsDelete, true)
                    .Set(a => a.Balance, a => a.Balance + SqlFun.MONEY(200), 1 < 2) //true
                    .Set(a => a.Name, a => SqlFun.Replace(a.Name, "b", charat))     //true
                    .Where(a => a.Id == 27)
                    .Update();
                }
                catch (Exception e)
                {
                    throw;
                }
            }
        }
コード例 #3
0
ファイル: SqliteTest.cs プロジェクト: newdayslu/SqlCommon
        public void TestUpdate()
        {
            var sb = new System.Data.SQLite.SQLiteConnectionStringBuilder();

            sb.DataSource = "D:\\sqlite.db3";
            var connection = new System.Data.SQLite.SQLiteConnection(sb.ConnectionString);

            using (IDbContext db = new DbProxyContext(connection, DbContextType.Sqlite))
            {
                var row = 0;
                db.Open();//自动提交
                var entity1 = new Student()
                {
                    Id         = 22,
                    Balance    = 50,
                    BirthDay   = DateTime.Now,
                    Score      = Grade.E,
                    IsDelete   = true,
                    Name       = "faker",
                    Version    = "test",
                    CreateTime = DateTime.Now,
                };
                var entity2 = new Student()
                {
                    Id         = 24,
                    Balance    = 50,
                    BirthDay   = DateTime.Now,
                    Score      = Grade.E,
                    IsDelete   = true,
                    Name       = "faker",
                    Version    = "test",
                    CreateTime = DateTime.Now,
                };
                //1.根据主键字段更新所有列
                row = db.From <Student>().Update(entity1);
                //2.忽略指定列
                row = db.From <Student>().Filter(s => s.Version).Update(entity2);
                //3.根据指定条件更新所有列
                var oldVersion = "110";
                row = db.From <Student>()
                      .Where(a => a.Id == 25 && a.Version == oldVersion)
                      .Update(entity1);
                //4.批量修改,不推荐使用,
                var students = new List <Student>();
                students.Add(entity1);
                students.Add(entity2);
                row = db.From <Student>().Filter(a => a.CreateTime).Update(students);
                //5.更新指定字段
                db.From <Student>()
                .Update(s => new Student()
                {
                    Id    = 26, //默认通过id更新,可以用where来重置默认
                    Score = Grade.F,
                    Name  = "hihi"
                });
                //6.动态更新字段
                var charat = "f";
                db.From <Student>()
                .Set(a => a.Balance, 100, 1 > 2)                            //false
                .Set(a => a.IsDelete, true)
                .Set(a => a.Balance, a => a.Balance + 200, 1 < 2)           //true
                .Set(a => a.Name, a => SqlFun.Replace(a.Name, "b", charat)) //true
                .Where(a => a.Id == 27)
                .Update();
            }
        }