Implementing sqlite data reader

This commit is contained in:
Chris Cameron
2018-01-27 22:39:19 -05:00
parent ba78d556b5
commit 44b79ea7ee
6 changed files with 54 additions and 7 deletions

View File

@@ -43,6 +43,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Data.SQLite" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.4" /> <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.4" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="System.Net.NetworkInformation" Version="4.3.0" /> <PackageReference Include="System.Net.NetworkInformation" Version="4.3.0" />

View File

@@ -0,0 +1,9 @@
using System;
namespace ICD.Common.Utils.Sqlite
{
public interface IIcdDataReader : IDisposable, IIcdDataRecord
{
bool Read();
}
}

View File

@@ -0,0 +1,7 @@
namespace ICD.Common.Utils.Sqlite
{
public interface IIcdDataRecord
{
object this[string columnId] { get; }
}
}

View File

@@ -0,0 +1,14 @@
namespace ICD.Common.Utils.Sqlite
{
public abstract class IcdDbDataReader : IIcdDataReader
{
/// <summary>
/// Release resources.
/// </summary>
public abstract void Dispose();
public abstract bool Read();
public abstract object this[string columnId] { get; }
}
}

View File

@@ -50,5 +50,10 @@ namespace ICD.Common.Utils.Sqlite
{ {
return m_Command.ExecuteNonQuery(); return m_Command.ExecuteNonQuery();
} }
public object ExecuteScalar()
{
return m_Command.ExecuteScalar();
}
} }
} }

View File

@@ -3,21 +3,32 @@ using Microsoft.Data.Sqlite;
namespace ICD.Common.Utils.Sqlite namespace ICD.Common.Utils.Sqlite
{ {
public sealed class IcdSqliteDataReader : IDisposable public sealed class IcdSqliteDataReader : IcdDbDataReader
{ {
public IcdSqliteDataReader(SqliteDataReader executeReader) private readonly SqliteDataReader m_Reader;
/// <summary>
/// Constructor.
/// </summary>
/// <param name="reader"></param>
public IcdSqliteDataReader(SqliteDataReader reader)
{ {
throw new NotImplementedException(); m_Reader = reader;
} }
public void Dispose() /// <summary>
/// Release resources.
/// </summary>
public override void Dispose()
{ {
throw new NotImplementedException(); m_Reader.Dispose();
} }
public bool Read() public override bool Read()
{ {
throw new NotImplementedException(); return m_Reader.Read();
} }
public override object this[string columnId] { get { return m_Reader[columnId]; } }
} }
} }