oledb测试

master
bicijinlian 5 years ago
parent 79d80ca21b
commit 2c3223ac6b

@ -5,8 +5,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="System.Data.Odbc" Version="4.7.0" /> <PackageReference Include="System.Data.Odbc" Version="5.0.0" />
<PackageReference Include="System.Data.OleDb" Version="4.7.1" /> <PackageReference Include="System.Data.OleDb" Version="5.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -189,7 +189,7 @@ namespace AccessStudy.Core
if (parameters != null) if (parameters != null)
{ {
command.Parameters.Add(parameters.ToArray()); command.Parameters.AddRange(parameters.ToArray());
} }
dataReader = command.ExecuteReader(); dataReader = command.ExecuteReader();
@ -227,7 +227,7 @@ namespace AccessStudy.Core
if (parameters != null) if (parameters != null)
{ {
command.Parameters.Add(parameters.ToArray()); command.Parameters.AddRange(parameters.ToArray());
} }
result = command.ExecuteScalar(); result = command.ExecuteScalar();
@ -264,7 +264,7 @@ namespace AccessStudy.Core
if (parameters != null) if (parameters != null)
{ {
command.Parameters.Add(parameters.ToArray()); command.Parameters.AddRange(parameters.ToArray());
} }
result = command.ExecuteNonQuery(); result = command.ExecuteNonQuery();

@ -6,7 +6,7 @@ using System.Text;
namespace AccessStudy.Core namespace AccessStudy.Core
{ {
public class OledbUtil:IDisposable public class OledbUtil : IDisposable
{ {
public OleDbConnection DbConnection { get; set; } public OleDbConnection DbConnection { get; set; }
@ -72,7 +72,7 @@ namespace AccessStudy.Core
adapter.Fill(dataSet); adapter.Fill(dataSet);
} }
catch(Exception ex) catch (Exception ex)
{ {
Console.WriteLine(ex.Message); Console.WriteLine(ex.Message);
} }
@ -87,7 +87,7 @@ namespace AccessStudy.Core
/// <summary> /// <summary>
/// 获取DataSet /// 获取DataSet
/// </summary> /// </summary>
public DataSet GetDataSet(string sqlText, List<OleDbParameter> parameters=null) public DataSet GetDataSet(string sqlText, List<OleDbParameter> parameters = null)
{ {
DataSet dataSet = new DataSet(); DataSet dataSet = new DataSet();
try try
@ -100,7 +100,7 @@ namespace AccessStudy.Core
CommandText = sqlText, CommandText = sqlText,
}; };
if (parameters !=null) if (parameters != null)
{ {
command.Parameters.AddRange(parameters.ToArray()); command.Parameters.AddRange(parameters.ToArray());
} }
@ -133,9 +133,9 @@ namespace AccessStudy.Core
/// <summary> /// <summary>
/// 获取DataTable /// 获取DataTable
/// </summary> /// </summary>
public DataTable GetDataTable(string sqlText, List<OleDbParameter> parameters=null) public DataTable GetDataTable(string sqlText, List<OleDbParameter> parameters = null)
{ {
DataSet dataSet = GetDataSet(sqlText,parameters); DataSet dataSet = GetDataSet(sqlText, parameters);
return dataSet.Tables[0]; return dataSet.Tables[0];
} }
@ -175,7 +175,7 @@ namespace AccessStudy.Core
/// 获取DataReader /// 获取DataReader
/// 切记:用完之后主动关闭连接 /// 切记:用完之后主动关闭连接
/// </summary> /// </summary>
public OleDbDataReader GetDataReader(string sqlText, List<OleDbParameter> parameters=null) public OleDbDataReader GetDataReader(string sqlText, List<OleDbParameter> parameters = null)
{ {
OleDbDataReader dataReader = null; OleDbDataReader dataReader = null;
try try
@ -185,12 +185,12 @@ namespace AccessStudy.Core
{ {
Connection = DbConnection, Connection = DbConnection,
CommandType = CommandType.Text, CommandType = CommandType.Text,
CommandText =sqlText, CommandText = sqlText,
}; };
if (parameters != null) if (parameters != null)
{ {
command.Parameters.Add(parameters.ToArray()); command.Parameters.AddRange(parameters.ToArray());
} }
dataReader = command.ExecuteReader(); dataReader = command.ExecuteReader();
@ -212,7 +212,7 @@ namespace AccessStudy.Core
/// 获取第一行第一列的值 /// 获取第一行第一列的值
/// 不存在则为null /// 不存在则为null
/// </summary> /// </summary>
public object GetScalar(string sqlText, List<OleDbParameter> parameters=null) public object GetScalar(string sqlText, List<OleDbParameter> parameters = null)
{ {
object result = null; object result = null;
@ -228,7 +228,7 @@ namespace AccessStudy.Core
if (parameters != null) if (parameters != null)
{ {
command.Parameters.Add(parameters.ToArray()); command.Parameters.AddRange(parameters.ToArray());
} }
result = command.ExecuteScalar(); result = command.ExecuteScalar();
@ -265,7 +265,7 @@ namespace AccessStudy.Core
if (parameters != null) if (parameters != null)
{ {
command.Parameters.Add(parameters.ToArray()); command.Parameters.AddRange(parameters.ToArray());
} }
result = command.ExecuteNonQuery(); result = command.ExecuteNonQuery();
@ -306,7 +306,7 @@ namespace AccessStudy.Core
public void Dispose() public void Dispose()
{ {
if (DbConnection.State==ConnectionState.Open) if (DbConnection.State == ConnectionState.Open)
{ {
DbConnection.Close(); DbConnection.Close();
} }

@ -7,10 +7,21 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" />
<PackageReference Include="xunit" Version="2.4.0" /> <PackageReference Include="Shouldly" Version="4.0.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> <PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="coverlet.collector" Version="1.2.0" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="1.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AccessStudy.Core\AccessStudy.Core.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -0,0 +1,122 @@
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
using Shouldly;
using Shouldly.Configuration;
using Shouldly.ShouldlyExtensionMethods;
using AccessStudy.Core;
using System.Data.OleDb;
namespace AccessStudy.CoreTest
{
public class OleDbUtilTest:IDisposable
{
private readonly OledbUtil _dbUtil;
public OleDbUtilTest()
{
_dbUtil = new OledbUtil();
}
[Fact]
public void DbUtil_NotNull_Test()
{
Assert.NotNull(_dbUtil);
}
[Fact]
public void DbConnet_Test()
{
var con = _dbUtil.DbConnection;
Assert.NotNull(con);
Action action = () =>
{
con.Open();
con.Close();
con.Dispose();
//throw new Exception("特意抛出的异常!");
};
Should.NotThrow(action);
}
[Fact]
public void DataSet_Test()
{
var ds = _dbUtil.GetDataSet("Student");
Assert.NotNull(ds);
Assert.NotNull(ds.Tables);
Assert.True(ds.Tables.Count>0);
}
[Fact]
public void DataTable_Test()
{
var dt = _dbUtil.GetDataTable("Student");
Assert.NotNull(dt);
}
[Fact]
public void DataReader_Test()
{
Action action = () =>
{
var dataReader = _dbUtil.GetDataReader("Student");
while (dataReader.Read())
{
break;
}
dataReader.Close();
};
Should.NotThrow(action);
}
[Fact]
public void Scalar_Test()
{
var sqlText = @"select count(*) as Total from Student where Age>@Age;";
List<OleDbParameter> paras = new List<OleDbParameter>()
{
new OleDbParameter("Age",1),
};
var total = (int)_dbUtil.GetScalar(sqlText, paras);
Assert.True(total >= 0);
}
[Fact]
public void NonQuery_Test()
{
var sqlText = @"update Student Set Age=Age+1 where Age>@Age and Name <>@Name;";
List<OleDbParameter> paras = new List<OleDbParameter>()
{
new OleDbParameter("Age",1),
new OleDbParameter("Name","王高峰"),
};
var total = _dbUtil.ExecuteNonQuery(sqlText, paras);
Assert.True(total >= 0);
}
public void Dispose()
{
}
}
}
Loading…
Cancel
Save