ExecuteScalar

BLToolkit.NET

Business Logic Toolkit for .NET www.bltoolkit.net
  ExecuteScalar.cs
using System;

using NUnit.Framework;

using BLToolkit.DataAccess;

namespace HowTo.DataAccess
{
    [TestFixture]
    public class ExecuteScalar
    {
        public abstract class PersonAccessor : DataAccessor<Person>
        {
            [SqlQuery("SELECT Count(*) FROM Person")]
            public abstract int GetCount();

            // The Person_Insert sproc returns an id of the created record.
            //
            [SprocName("Person_Insert")]
            public abstract int Insert(Person person);
        }

        [Test]
        public void Test()
        {
            PersonAccessor pa = DataAccessor.CreateInstance<PersonAccessor>();

            // ExecuteScalar.
            //
            Assert.IsTrue(pa.GetCount() > 0);

            // Insert and get id.
            //
            Person person = new Person();

            person.FirstName = "Crazy";
            person.LastName  = "Frog";
            person.Gender    = Gender.Unknown;

            int id = pa.Insert(person);

            Assert.IsFalse(id == 0);

            new SprocQuery<Person>().DeleteByKey(id);
        }
    }
}
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>
    <appSettings>
        <add
            key   = "ConnectionString"
            value = "Server=.;Database=BLToolkitData;Integrated Security=SSPI"/>
    </appSettings>
</configuration>
Create.sql script
 
© 2010 www.bltoolkit.net
[email protected]