接上文
对文件系统的操作:
对于文件目前内置3中支持对象:XML、TEXT、CONFIG文件,分别位于类库XMLProvider、TextProvider、SuitConfigProvider中,大家可以自己调用,文件操作大多使用静态操作。
对config文件的操作:
这里还要介绍一SuitConfigProvider类库中的GetItem、GetSection、AppendItem、RemoveElement方法,这几个方法可以快速获得we.config中的Item、节点内容,以及增加、移除节点,例如有个Item信息如下:
<add key="NameABC" value="Data Source=Server IP;User;Password=111111;Integrated Security=no;Enlist=false;Pooling=true;" />
使用SuitConfigProvider.GetItem("NameABC ") 语句就可以立即获得该Item内容
SuitConfigProvider类中的方法实现为静态,用户可以直接调用,下表罗列了方法调用说明:
方法名
|
说明
|
static ConfigFileType ConfigType
|
指明config类型,默认为web应用程序
|
static string GetItem(string key)
|
获得某个” add key”Item的值
|
static Hashtable GetSection(string SectionKey)
|
获得某个节点的数据,返回HashTable
|
static string GetConnectionString(string key)
|
protected internal类型,初始化数据库连接
|
static bool ModifyItem(string key, string value)
|
修改一个” add key”Item的值
|
static bool AppendItem(string key, string value)
|
添加一个” add key”Item的值
|
static bool RemoveElement(string Key)
|
移除” add key”Item
|
对文本文件操作:
方法名
|
说明
|
static string GetContent(string Fileinfo)
|
2次重载,获得文件内容
|
static bool CreateFile(string FileInfo)
|
创建一个文件
|
static bool AppendFile(string str, string FileInfo)
|
2次重载,追加文件内容
|
对XML文件操作:
方法名
|
说明
|
static List<Hashtable> GetContent(string FileInfo, string SingleNode)
|
2次重载,获得文件内容。传入文件为文件路径和根节点名称,每个节点信息储存在HashTable中,并以List<Hashtable>形式返回
|
static bool CreateFile(string SingleNode, string FileInfo)
|
创建一个文件,传入文件为文件路径和根节点名称,
|
static bool AppendFile(string SingleNode, string Element, List<Hashtable> Lht, string FileInfo)
|
2次重载,追加文件内容,传入文件为根节点内名称、追加节点名称、追加内容结构和追加文件信息。
其中追加内容结构为List<Hashtable>,Hashtable的键名为追加后XML的节点名
|
Web.config对DataProvider的支援信息(选择配置):
键名
|
解释
|
IsLine.Provider.DataProvider.CfgDllName
|
反射的数据库工厂DLL位置
|
IsLine.Security.Configuration.TokenKey
|
加密使用的种子(字符串)
|
IsLine.Data.Configuration.DBConnectString
|
数据库连接信息
|
IsLine.Data.Configuration.TextProviderFileInfo
|
默认文件位置
|
IsLine.Data.Configuration.SqlServerConnectString
|
SQL数据库连接信息
|
IsLine.Data.Configuration.OracleConnectString
|
Oracle数据库连接信息
|
关于IsLine.Data.ContainerDefiner命名空间的缓存支援:
这里要提一下该命名空间下ContainerDefine类的缓存支援。
该类共实现 ISqlContainer, IOracleContainer, IFileContainer, IDisposable四个接口,包括了常见的ADO.Net数据对象,例如DataSet、Reader等,利用OracleProvider或SqleProvider中相关方法获得的数据对象,可以直接赋值给ContainerDefine类下的对应对象,例如:
//声明一个容器
ContainerDefine cd = new ContainerDefine(CacheType.HttpRuntime, "IsLineCache");
//将返回的DataSet对象赋值给cd容器
cd.DataSet = new OracleProvider().ExecuteDataSet(sql,CommandType.StoredProcedure,"TestTable",null)
请大家注意,在生命cd时,构造函数有2个参数,第一个是开启HttpRuntime缓存,第二个参数是缓存的名字,这样cd中的DataSet对象被赋值后,会自动缓存,下次在调用cd.DataSet对象时,将自动从缓存中读取,不需要OracleProvider().ExecuteDataSet()方法重新取数据了,目前缓存支持.Net运行时缓存和上下文缓存,当然缓存策略默认是关闭的,当构造函数接收到上述参数时,才会开启缓存。
有关缓存的详细说明,请参看后面的文章“IsLine.HttpContent.HttpContentProvider命名空间系列”
DataProvider没介绍的内容还有很多,这里就不一一介绍了,也许以后有时间Aicken还会继续写完整的。
附 DataProvider Database方法大全:
方法/字段名
|
功能
|
类型
|
ExecuteNonQuery(string cmdText)
|
执行传入的sql语句
|
static int
|
ExecuteNonQuery(string cmdText, string connectionKey)
|
使用指定连接字符串connectionKey,执行传入的sql语句,connectionKey必须在web.config文件中有值
|
static int
|
ExecuteNonQuery(string cmdText, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)
|
1.IsUsingDBTransaction为是否使用数据库事务。
2.如果cmdType为文本,那么cmdText为sql语句;如果cmdType为存储过程,那么cmdText为存储过程名称
3.如果不需要最后一个参数,则传递null即可
|
static int
|
ExecuteNonQuery(string cmdText, string connectionKey, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)
|
使用指定连接字符串connectionKey,其他说明见方法3
|
static int
|
ExecuteNonQuery(string cmdText, DbConnection connection, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)
|
使用指定DbConnection执行,其他说明见方法3
|
static int
|
ExecuteScalar(string cmdText)
|
执行传入的sql语句
|
static object
|
ExecuteScalar(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)
|
其他说明见方法3
|
static object
|
ExecuteScalar(string cmdText, string connectionKey, CommandType cmdType, params DbParameter[] commandParameters)
|
使用指定DbConnection执行
|
static object
|
ExecuteScalar(string cmdText, DbConnection connection, CommandType cmdType, params DbParameter[] commandParameters)
|
使用指定DbConnection执行
|
static object
|
ExecuteReader(string cmdText)
|
执行sql语句,返回DbDataReader。注意,调用此方法后,须调用Dispose()释放资源
|
DbDataReader
|
ExecuteReader(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)
|
其他说明见方法3
|
DbDataReader
|
ExecuteReader(string cmdText, string connectionKey)
|
见方法2
|
DbDataReader
|
ExecuteReader(string cmdText, CommandType cmdType, string connectionKey, params DbParameter[] commandParameters)
|
其他说明见方法3
|
DbDataReader
|
ExecuteReader(string cmdText, CommandType cmdType, DbConnection connection, params DbParameter[] commandParameters)
|
见方法4
|
DbDataReader
|
ExecuteDataAdapter(string cmdText)
|
执行sql语句
|
DbDataAdapter
|
ExecuteDataAdapter(string cmdText, string connectionKey)
|
见方法2
|
DbDataAdapter
|
ExecuteDataAdapter(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)
|
其他说明见方法3
|
DbDataAdapter
|
ExecuteDataAdapter(string cmdText, CommandType cmdType, string connectionKey, params DbParameter[] commandParameters)
|
见方法4
|
DbDataAdapter
|
ExecuteDataAdapter(string cmdText, CommandType cmdType, DbConnection connection, params DbParameter[] commandParameters)
|
见方法4
|
DbDataAdapter
|
ExecuteDataSet(string cmdText)
|
执行sql语句
|
DataSet
|
ExecuteDataSet(string cmdText, string connectionKey, int some)
|
使用指定连接字符串connectionKey,其他说明见方法3
|
DataSet
|
ExecuteDataSet(string cmdText, CommandType cmdType, string srcTable, string connectionKey, params DbParameter[] commandParameters)
|
srcTable为填充表的名子,其他说明见方法3
|
DataSet
|
ExecuteDataSet(string cmdText, CommandType cmdType, string srcTable, params DbParameter[] commandParameters)
|
其他说明见方法3
|
DataSet
|
ExecuteDataSet(string cmdText, string srcTable)
|
其他说明见方法3
|
DataSet
|
ExecuteDataSet(string cmdText, string srcTable, string connectionKey)
|
其他说明见方法3
|
DataSet
|
Dispose()
|
释放实例中所有成员,包括各种Reader、Adapter、Connection等
|
void
|
未完待续
我是李鸣(Aicken) 欢迎您关注我的下一篇文章。
|
请发表评论