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>
<PackageReference Include="Microsoft.Data.SQLite" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.4" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<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();
}
public object ExecuteScalar()
{
return m_Command.ExecuteScalar();
}
}
}

View File

@@ -3,21 +3,32 @@ using Microsoft.Data.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]; } }
}
}