Business Logic Toolkit for .NET
www.bltoolkit.net
Welcome Guest, you are in: Login
|  Home   |  Download   |  Documentation   |  Discussions   |  Issues   |  License   |
RSS RSS

Navigation




Search the wiki
»

PoweredBy
UpdateSql.cs

using System;

using NUnit.Framework;

using BLToolkit.Data; using BLToolkit.DataAccess; using BLToolkit.Mapping;

namespace HowTo.DataAccess { [TestFixture] public class UpdateSql { int _id;

[TestFixtureSetUp] public void Insert() { using (DbManager db = new DbManager()) { _id = db .SetCommand(@" INSERT INTO Person ( FirstName, LastName, Gender ) VALUES ( @FirstName, @LastName, @Gender ) SELECT Cast(SCOPE_IDENTITY() as int)", db.Parameter("@FirstName", "Crazy"), db.Parameter("@LastName", "Frog"), db.Parameter("@Gender", Map.EnumToValue(Gender.Unknown))) .ExecuteScalar<int>(); } }

[Test] public void Test1() { SqlQuery<Person> query = new SqlQuery<Person>();

Person person = query.SelectByKey(_id);

person.Gender = Gender.Other;

query.Update(person); }

[Test] public void Test2() { using (DbManager db = new DbManager()) { SqlQuery<Person> query = new SqlQuery<Person>();

Person person = query.SelectByKey(db, _id);

person.Gender = Gender.Other;

query.Update(db, person); } }

[TestFixtureTearDown] public void Delete() { using (DbManager db = new DbManager()) { db .SetCommand("DELETE FROM Person WHERE PersonID = @id", db.Parameter("@id", _id)) .ExecuteNonQuery(); } } } }

DataAccessor.UpdateSql method generates and executes the following SQL statement:

UPDATE
    [Person]
SET
    [MiddleName] = @MiddleName,
    [Gender]     = @Gender,
    [LastName]   = @LastName,
    [FirstName]  = @FirstName
WHERE
    [PersonID]   = @PersonID

Person.cs

using System;

using BLToolkit.DataAccess; using BLToolkit.Mapping;

namespace HowTo.DataAccess { public class Person { [MapField("PersonID"), PrimaryKey, NonUpdatable] public int ID;

public string LastName; public string FirstName; public string MiddleName; public Gender Gender; } }

Gender.cs

using System;

using BLToolkit.Mapping;

namespace HowTo.DataAccess { public enum Gender { [MapValue("F")] Female, [MapValue("M")] Male, [MapValue("U")] Unknown, [MapValue("O")] Other } }

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add
            name             = "DemoConnection"
            connectionString = "Server=.;Database=BLToolkitData;Integrated Security=SSPI"
            providerName     = "System.Data.SqlClient" />
    </connectionStrings>
</configuration>

CreateSql
© 2010 www.bltoolkit.net