新近写了个通用的数据库访问类(c#)
2005-01-25 10:18
387 查看
新近写了个通用的数据库访问类(c#);支持oledb/sql/oracle/odbc数据连接,
提供sysbase,db2 的接口支持,
如果有什么错误、意见、建议。请联系我yu_nan88@126.com
http://mail.gongyi.gov.cn/netdisk/download.php?user=zhaobin@gongyi.gov.cn&id=2712a90f0de399014bfbea6e697381a3&filename=L7mk1/cvTXlQRE8ucmFy&language=gb
经过不完全测试:
测试代码:
using System;
using System.Collections;
using System.IO;
using NUnit.Framework;
using MyPDO.DataAccess;
namespace DataAccessTest
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
[TestFixture]
public class DataAccessTest
{
public DataAccessTest()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private MyPDO.DataAccess.DataAccessor DBA;
[SetUp]
public void SetUp()
{
DBA = new DataAccessor();
DBA.ConnectString = "Provider=SQLOLEDB;data source=10.10.25.63;initial catalog=Master;user id=zha;Password=123;";
DBA.ConnectType = MyPDO.ConnectType.OleDbDataDriver;
DBA.Open();
Assert.IsTrue(DBA.IsOpen,"DBA closed");
}
[Test]
public void ExecuteNonQueryTest()
{
Hashtable hsTable = new Hashtable();
hsTable.Add("A","select * from myfiles");
DBA.
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.ExecuteNonQuery(hsTable);
}
}
[Test]
public void GetDataSetTest()
{
System.Data.DataSet ds = new System.Data.DataSet();
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
ds = DBA.GetDataSet();
}
}
[Test]
public void GetDataTableTest()
{
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
System.Data.DataTable dts = DBA.GetDataTable();
}
}
[Test]
public void GetDataReaderTest()
{
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
System.Data.IDataReader dtReader = DBA.GetDataReader();
dtReader.Close();
}
}
[Test]
public void ExecuteCommandTest()
{
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
DBA.ExecuteCommand(false);
}
}
[Test]
public void SetCommandParametersTest()
{
System.Data.OleDb.OleDbParameter parms = new System.Data.OleDb.OleDbParameter();
parms.ParameterName = "@path";
parms.OleDbType = System.Data.OleDb.OleDbType.VarChar;
parms.Size = 255;
parms.SourceColumn = "path";
parms.Value = "222";
System.Data.OleDb.OleDbParameter parms1 = new System.Data.OleDb.OleDbParameter();
parms1.ParameterName = "@fname";
parms1.OleDbType = System.Data.OleDb.OleDbType.VarChar;
parms1.Size = 255;
parms1.SourceColumn = "fname";
parms1.Value = "1";
MyPDO.DataAccess.DataAccessor DBA = new DataAccessor();
DBA.ConnectString = "Provider=SQLOLEDB;data source=10.10.25.63;initial catalog=Master;user id=zha;Password=123;";
DBA.Open();
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles where path = ? and fname = ?";
DBA.SetCommandParameter(parms,false);
DBA.SetCommandParameter(parms1,false);
System.Data.DataSet ds = DBA.GetDataSet();
Assert.AreEqual(1,ds.Tables[0].Rows.Count);
DBA.Close();
}
}
[Test]
public void AllUseTest()
{
this.ExecuteCommandTest();
this.ExecuteNonQueryTest();
this.GetDataReaderTest();
this.GetDataReaderTestWithParamBlob();
this.GetDataReaderTestWithParamString();
this.GetDataSetTest();
this.GetDataTableTest();
this.SetCommandParametersTest();
}
[Test]
public void GetDataReaderTestWithParamString()
{
System.Data.OleDb.OleDbParameter parms = new System.Data.OleDb.OleDbParameter();
parms.ParameterName = "@path";
//parms.OleDbType = System.Data.OleDb.OleDbType.VarChar;
//parms.Size = 255;
//parms.SourceColumn = "path";
parms.Value = "eeee";
System.Data.OleDb.OleDbParameter parms1 = new System.Data.OleDb.OleDbParameter();
parms1.ParameterName = "@fname";
//parms1.OleDbType = System.Data.OleDb.OleDbType.VarChar;
//parms1.Size = 255;
//parms1.SourceColumn = "fname";
parms1.Value = "1";
Assert.IsTrue(DBA.IsOpen,"DBA closed");
{
DBA.CommandText = "select * from myfiles where path = ? and fname = ?";
DBA.SetCommandParameter(parms,false);
DBA.SetCommandParameter(parms1,false);
System.Data.IDataReader dtReader = DBA.GetDataReader();
dtReader.Read();
string strPath = dtReader.GetString(0);
Assert.AreEqual("eeee",strPath);
dtReader.Close();
}
}
[Test]
public void GetDataReaderTestWithParamBlob()
{
System.Data.OleDb.OleDbParameter parms = new System.Data.OleDb.OleDbParameter();
parms.ParameterName = "@path";
//parms.OleDbType = System.Data.OleDb.OleDbType.Numeric;
//parms.Size = 8;
//parms.SourceColumn = "c";
parms.Value = 999;
System.Data.OleDb.OleDbParameter parms1 = new System.Data.OleDb.OleDbParameter();
parms1.ParameterName = "@fname";
//parms1.OleDbType = System.Data.OleDb.OleDbType.Binary;
//parms1.Size = 16;
//parms1.SourceColumn = "a";
parms1.Value = GetPhoto(@"c:/a.jpg");
//parms1.Value = "111111111111111111111";
//System.Data.OleDb.OleDbParameter parms2 = new System.Data.OleDb.OleDbParameter()
Assert.IsTrue(DBA.IsOpen,"DBA closed");
{
DBA.CommandText = "insert into test(c,a) values(convert(money,?),?) ";
//DBA.CommandText = "insert into myfiles(path,fname) values(?,?)";
DBA.SetCommandParameter(parms,false);
DBA.SetCommandParameter(parms1,false);
DBA.ExecuteCommand(true);
}
}
public static byte[] GetPhoto(string filePath)
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
return photo;
}
[Test]
public void ExecuteStoredProcedureTestOneValue()
{
if (DBA.IsOpen == true)
{
DBA.CommandText = "exec get_2 '222'";
object j = DBA.ExecuteStoredProcedure(MyPDO.StoredProcedureType.OneValue);
string s = (string)j;
Assert.AreEqual("222",s);
}
}
[Test]
public void ExecuteStoredProcedureTestNone()
{
if (DBA.IsOpen == true)
{
DBA.CommandText = "exec get_2 '222'";
object s = DBA.ExecuteStoredProcedure(MyPDO.StoredProcedureType.None);
Assert.AreEqual(null,s);
}
else
Assert.AreEqual(null,"1");
}
[Test]
public void ExecuteStoredProcedureTestDataSet()
{
if (DBA.IsOpen == true)
{
DBA.CommandText = "exec get_2 'ddddd'";
object s = DBA.ExecuteStoredProcedure(MyPDO.StoredProcedureType.DataSet);
System.Data.DataSet ds = (System.Data.DataSet)s;
if(ds.Tables.Count > 0)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt = ds.Tables[0];
int str = dt.Rows.Count;
Assert.AreEqual(3,str);
}
else
Assert.AreEqual(null,"s");
}
else
Assert.AreEqual(null,"1");
}
}
}
提供sysbase,db2 的接口支持,
如果有什么错误、意见、建议。请联系我yu_nan88@126.com
http://mail.gongyi.gov.cn/netdisk/download.php?user=zhaobin@gongyi.gov.cn&id=2712a90f0de399014bfbea6e697381a3&filename=L7mk1/cvTXlQRE8ucmFy&language=gb
经过不完全测试:
测试代码:
using System;
using System.Collections;
using System.IO;
using NUnit.Framework;
using MyPDO.DataAccess;
namespace DataAccessTest
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
[TestFixture]
public class DataAccessTest
{
public DataAccessTest()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private MyPDO.DataAccess.DataAccessor DBA;
[SetUp]
public void SetUp()
{
DBA = new DataAccessor();
DBA.ConnectString = "Provider=SQLOLEDB;data source=10.10.25.63;initial catalog=Master;user id=zha;Password=123;";
DBA.ConnectType = MyPDO.ConnectType.OleDbDataDriver;
DBA.Open();
Assert.IsTrue(DBA.IsOpen,"DBA closed");
}
[Test]
public void ExecuteNonQueryTest()
{
Hashtable hsTable = new Hashtable();
hsTable.Add("A","select * from myfiles");
DBA.
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.ExecuteNonQuery(hsTable);
}
}
[Test]
public void GetDataSetTest()
{
System.Data.DataSet ds = new System.Data.DataSet();
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
ds = DBA.GetDataSet();
}
}
[Test]
public void GetDataTableTest()
{
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
System.Data.DataTable dts = DBA.GetDataTable();
}
}
[Test]
public void GetDataReaderTest()
{
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
System.Data.IDataReader dtReader = DBA.GetDataReader();
dtReader.Close();
}
}
[Test]
public void ExecuteCommandTest()
{
Assert.IsTrue(DBA.IsOpen,"DBA closed");
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles";
DBA.ExecuteCommand(false);
}
}
[Test]
public void SetCommandParametersTest()
{
System.Data.OleDb.OleDbParameter parms = new System.Data.OleDb.OleDbParameter();
parms.ParameterName = "@path";
parms.OleDbType = System.Data.OleDb.OleDbType.VarChar;
parms.Size = 255;
parms.SourceColumn = "path";
parms.Value = "222";
System.Data.OleDb.OleDbParameter parms1 = new System.Data.OleDb.OleDbParameter();
parms1.ParameterName = "@fname";
parms1.OleDbType = System.Data.OleDb.OleDbType.VarChar;
parms1.Size = 255;
parms1.SourceColumn = "fname";
parms1.Value = "1";
MyPDO.DataAccess.DataAccessor DBA = new DataAccessor();
DBA.ConnectString = "Provider=SQLOLEDB;data source=10.10.25.63;initial catalog=Master;user id=zha;Password=123;";
DBA.Open();
if (DBA.IsOpen == true)
{
DBA.CommandText = "select * from myfiles where path = ? and fname = ?";
DBA.SetCommandParameter(parms,false);
DBA.SetCommandParameter(parms1,false);
System.Data.DataSet ds = DBA.GetDataSet();
Assert.AreEqual(1,ds.Tables[0].Rows.Count);
DBA.Close();
}
}
[Test]
public void AllUseTest()
{
this.ExecuteCommandTest();
this.ExecuteNonQueryTest();
this.GetDataReaderTest();
this.GetDataReaderTestWithParamBlob();
this.GetDataReaderTestWithParamString();
this.GetDataSetTest();
this.GetDataTableTest();
this.SetCommandParametersTest();
}
[Test]
public void GetDataReaderTestWithParamString()
{
System.Data.OleDb.OleDbParameter parms = new System.Data.OleDb.OleDbParameter();
parms.ParameterName = "@path";
//parms.OleDbType = System.Data.OleDb.OleDbType.VarChar;
//parms.Size = 255;
//parms.SourceColumn = "path";
parms.Value = "eeee";
System.Data.OleDb.OleDbParameter parms1 = new System.Data.OleDb.OleDbParameter();
parms1.ParameterName = "@fname";
//parms1.OleDbType = System.Data.OleDb.OleDbType.VarChar;
//parms1.Size = 255;
//parms1.SourceColumn = "fname";
parms1.Value = "1";
Assert.IsTrue(DBA.IsOpen,"DBA closed");
{
DBA.CommandText = "select * from myfiles where path = ? and fname = ?";
DBA.SetCommandParameter(parms,false);
DBA.SetCommandParameter(parms1,false);
System.Data.IDataReader dtReader = DBA.GetDataReader();
dtReader.Read();
string strPath = dtReader.GetString(0);
Assert.AreEqual("eeee",strPath);
dtReader.Close();
}
}
[Test]
public void GetDataReaderTestWithParamBlob()
{
System.Data.OleDb.OleDbParameter parms = new System.Data.OleDb.OleDbParameter();
parms.ParameterName = "@path";
//parms.OleDbType = System.Data.OleDb.OleDbType.Numeric;
//parms.Size = 8;
//parms.SourceColumn = "c";
parms.Value = 999;
System.Data.OleDb.OleDbParameter parms1 = new System.Data.OleDb.OleDbParameter();
parms1.ParameterName = "@fname";
//parms1.OleDbType = System.Data.OleDb.OleDbType.Binary;
//parms1.Size = 16;
//parms1.SourceColumn = "a";
parms1.Value = GetPhoto(@"c:/a.jpg");
//parms1.Value = "111111111111111111111";
//System.Data.OleDb.OleDbParameter parms2 = new System.Data.OleDb.OleDbParameter()
Assert.IsTrue(DBA.IsOpen,"DBA closed");
{
DBA.CommandText = "insert into test(c,a) values(convert(money,?),?) ";
//DBA.CommandText = "insert into myfiles(path,fname) values(?,?)";
DBA.SetCommandParameter(parms,false);
DBA.SetCommandParameter(parms1,false);
DBA.ExecuteCommand(true);
}
}
public static byte[] GetPhoto(string filePath)
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
return photo;
}
[Test]
public void ExecuteStoredProcedureTestOneValue()
{
if (DBA.IsOpen == true)
{
DBA.CommandText = "exec get_2 '222'";
object j = DBA.ExecuteStoredProcedure(MyPDO.StoredProcedureType.OneValue);
string s = (string)j;
Assert.AreEqual("222",s);
}
}
[Test]
public void ExecuteStoredProcedureTestNone()
{
if (DBA.IsOpen == true)
{
DBA.CommandText = "exec get_2 '222'";
object s = DBA.ExecuteStoredProcedure(MyPDO.StoredProcedureType.None);
Assert.AreEqual(null,s);
}
else
Assert.AreEqual(null,"1");
}
[Test]
public void ExecuteStoredProcedureTestDataSet()
{
if (DBA.IsOpen == true)
{
DBA.CommandText = "exec get_2 'ddddd'";
object s = DBA.ExecuteStoredProcedure(MyPDO.StoredProcedureType.DataSet);
System.Data.DataSet ds = (System.Data.DataSet)s;
if(ds.Tables.Count > 0)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt = ds.Tables[0];
int str = dt.Rows.Count;
Assert.AreEqual(3,str);
}
else
Assert.AreEqual(null,"s");
}
else
Assert.AreEqual(null,"1");
}
}
}
相关文章推荐
- 一个通用数据库访问类(C#,SqlClient)
- .NET通用数据库访问组件,日志组件,C#相关工具
- 转 C# SqlHelper数据库的通用访问代码(sqlclient)
- 【商业版】C# ASP.NET 通用权限管理系统组件源码中的数据库访问组件可以全面支持Access单机数据库了
- 【转】一个通用数据库访问类(C#,SqlClient)
- 【提供全部源码下载】C# ASP.NET 全国最好用的通用数据库访问层代码之一
- 【提供全部源码下载】这些年让我值得骄傲的数据库访问层代码,C# ASP.NET 全国最好用的通用数据库访问层代码之一
- C#:数据库通用访问类 SqlHelper
- 【商业版】C# ASP.NET 通用权限管理系统组件源码中的数据库访问组件可以全面支持Access单机数据库了
- C# SqlHelper数据库的通用访问代码
- 【商业版】C# ASP.NET 通用权限管理系统组件源码中的数据库访问组件可以全面支持Access单机数据库了
- 一个通用数据库访问类(C#,SqlClient)
- C#中的数据库访问工厂
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- .net通用数据库访问组件SQL Artisan应用简介1
- ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)
- 一个Windows后台服务(.Net的C#版) - 定时访问数据库循环发送手机短信
- .NET通用数据库访问组件SQL Artisan应用简介文档(doc)
- 《MySQL入门很简单》学习笔记(21)之第21章C#访问MySQL数据库(关键词:数据库/MySQL/C#)
- c# 数据库访问静态类 支持多条SQL语句事务操作