服务端管理工具编写(二)——公共函数及配置文件读写
2015-04-13 15:03
453 查看
在编写工具前,先弄个配置文件,保存一些基本信息,同时要编写一部分公共函数,如数据库连接和读取等,这些函数是所有数据库操作的基础,用得很多,把他们编译成一个单独的DLL文件比较合算。
一、配置文件
配置文件其实就只要保存一点信息,就是IIS的目录,这样通过IIS目录就可以找到数据库的本地绝对路径了。
在MeetingManage工程文件夹里依次打开MeetingManage->bin->Debug文件夹,是不是发现编写的出来的程序可执行文件就在这里?好,在这里新建一个文本文档,把它改名为Config.xml,注意,是要把扩展名为xml,用记事本或其他文本编辑器打开,输入配置内容。
Config.xml内容如下:
IISPath里面内容根据实际填写,就是MeetingSys工程的里面的文件夹的本地绝对路径。
二、公共函数
因为要把公共函数单独编译成一个DLL文件,需要新建一个项目,在IDE的“解决方案资源管理器”里面的“解决方案MeetingManage”那里用鼠标右键单击,在弹出菜单中选择添加->新建项目,在弹出的窗口中,模板选择windows,目标选择类库,把名称改为MeetingData,当然,也可以用其它名字,这个是DLL的命名空间,以后引用要用到这个名字,自己记住就行了。做完这个操作后,解决方案里面就有两个项目了,一个是MeetingData,一个是MeetingManage,前者就是公共函数,后者是管理工具的主体。
在解决方案资源管理器中打开MeetingData项目,看到到Class.cs的文件,为方便记忆,把它改名为MdbData.cs,不改也可以没影响的,双击打开这个文件,先添加几个引用,这个是C#的基本操作,以后不再讲了,因为用到不同的系统函数,随时会添加的。
添加引用就是添加几个using项目,在cs的最顶端,系统已经默认添加了3个了,由于公共函数中涉及到xml文件操作和数据操作,所以添加几个需要引用的文件。代码如下
先来个读取XML文档,获取数据库地址的函数。这个函数就是读取上文讲到的配置文件的里面保存的数据库地址,注意,这里其实是读取出IIS的目录,不能直接使用的。
IIS目录读取出来后,就需要数据连接了,因此在弄个数据库连接的函数。
连接好数据库后就开始进行数据读写操作了,先弄个根据SQL指令获取数据库内容的,一般都是以表的形式返回,所以就弄个返回数据表的。
有时候需要执行指定的SQL指令才操作数据库,所以弄个函数比较适合。
数据操作很多都是更新数据或插入数据,每次写这些SQL指令都很头痛,尤其是字段多的时候,弄个方便记忆的生成函数比较爽一点。
生成更新指令的函数如下
生成插入指令的函数如下
公共函数和配置文件读写基本就这些内容了,如果后面还有需要的在添加或修改。
一、配置文件
配置文件其实就只要保存一点信息,就是IIS的目录,这样通过IIS目录就可以找到数据库的本地绝对路径了。
在MeetingManage工程文件夹里依次打开MeetingManage->bin->Debug文件夹,是不是发现编写的出来的程序可执行文件就在这里?好,在这里新建一个文本文档,把它改名为Config.xml,注意,是要把扩展名为xml,用记事本或其他文本编辑器打开,输入配置内容。
Config.xml内容如下:
<?xml version="1.0" encoding="utf-8" ?> <AppConfig> <IISPath>D:\DocumentsVSWork\MeetingSys\MeetingSys</IISPath> </AppConfig>
IISPath里面内容根据实际填写,就是MeetingSys工程的里面的文件夹的本地绝对路径。
二、公共函数
因为要把公共函数单独编译成一个DLL文件,需要新建一个项目,在IDE的“解决方案资源管理器”里面的“解决方案MeetingManage”那里用鼠标右键单击,在弹出菜单中选择添加->新建项目,在弹出的窗口中,模板选择windows,目标选择类库,把名称改为MeetingData,当然,也可以用其它名字,这个是DLL的命名空间,以后引用要用到这个名字,自己记住就行了。做完这个操作后,解决方案里面就有两个项目了,一个是MeetingData,一个是MeetingManage,前者就是公共函数,后者是管理工具的主体。
在解决方案资源管理器中打开MeetingData项目,看到到Class.cs的文件,为方便记忆,把它改名为MdbData.cs,不改也可以没影响的,双击打开这个文件,先添加几个引用,这个是C#的基本操作,以后不再讲了,因为用到不同的系统函数,随时会添加的。
添加引用就是添加几个using项目,在cs的最顶端,系统已经默认添加了3个了,由于公共函数中涉及到xml文件操作和数据操作,所以添加几个需要引用的文件。代码如下
using System.Xml; using System.Data; using System.Data.OleDb; using System.Data.SqlClient;在using ×××下方有个namespace ×××的,这个就是命名空间,上文已经讲到,这里不多讲,在命名空间下方有行public class ×××,这个就是类,把它改名为public class MdbData,把数据库所有公共函数都编写在这个类里面。
先来个读取XML文档,获取数据库地址的函数。这个函数就是读取上文讲到的配置文件的里面保存的数据库地址,注意,这里其实是读取出IIS的目录,不能直接使用的。
public static string sIISPath() //读取XML文档,获取数据库地址 { XmlDocument xXmlDoc = new XmlDocument(); try { string sPath = ""; xXmlDoc.Load(@"Config.xml"); sPath = xXmlDoc.SelectSingleNode(@"/AppConfig/IISPath").InnerText; return sPath; } catch { return null; } }上述代码简单讲解一下,先定义一个XmlDocument变量xXmlDoc用于操作,给xXmlDoc加载同一下目录下的Config.xml文件,这里有点要说明的是字符串前面加了了个@,表示字符串里面的"/"等作为字符使用,不进行转义,这个以后会用到很多的。xXmlDoc.SelectSingleNode是读取指定节点里面的内容。关于XML文档读取需要深入研究的请百度。
IIS目录读取出来后,就需要数据连接了,因此在弄个数据库连接的函数。
public static OleDbConnection DataConn() //连接数据库,返回OleDB连接对象 { if (sIISPath() != null) { string strCon = @" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + sIISPath() + @"\App_Data\MeetingData.mdb"; OleDbConnection myConn = new OleDbConnection(strCon); return myConn; } else return null; }这里注意要和MeetingSys项目配合,在定义连接字符串时对数据库地址进行了补齐,就是最后添加的@"\App_Data\MeetingData.mdb"是进行地址补全的。
连接好数据库后就开始进行数据读写操作了,先弄个根据SQL指令获取数据库内容的,一般都是以表的形式返回,所以就弄个返回数据表的。
public static DataTable GetDataTable(string SQLComm)//根据SQL指令获取数据表 { OleDbConnection oConn = DataConn(); oConn.Open(); OleDbCommand Cmd = oConn.CreateCommand(); Cmd.CommandText = SQLComm; DataSet DS = new DataSet(); OleDbDataAdapter adapter = new OleDbDataAdapter(Cmd); adapter.Fill(DS); DataTable DT = DS.Tables[0]; oConn.Close(); return DT; }注意,这个函数没有对数据库连接是否成功进行检验,项目赶时间,我懒得写了,将就使用。还有可以返回DataSet的,也懒得写的,因为我用DataTable比较多。
有时候需要执行指定的SQL指令才操作数据库,所以弄个函数比较适合。
public static int SQLCom(string sqlStr)//在数据库中执行指定SQL语句,返回影响行数。 { OleDbConnection oConn = DataConn(); oConn.Open(); OleDbCommand Cmd = new OleDbCommand(); Cmd.CommandText = sqlStr; Cmd.Connection = oConn; int SQLComCount = Cmd.ExecuteNonQuery(); Cmd.Clone(); oConn.Close(); return SQLComCount; }系统用用得最多的是根据某个指定的ID,读取唯一一条记录的某个字段内容,如根据会议室ID读取会议室的名称,所以弄个通用的函数很有必要。
public static string GetAny(string TableName, string FieldName, string IDName, string ID)//在数据库中指定表具备唯一ID记录中获取指定字段内容 { string Site_Str = "Select " + FieldName + " From " + TableName + " Where " + IDName + "=" + ID; DataTable DT = GetDataTable(Site_Str); string str = ""; if (DT != null) { str = DT.Rows[0][FieldName].ToString(); } return str.Trim(); }这个函数用了4个参数,第一个是数据库的表名,第二个是要获取数据的字段名,第三个是具有唯一性的ID的字段名,第四个就是这个ID的值。
数据操作很多都是更新数据或插入数据,每次写这些SQL指令都很头痛,尤其是字段多的时候,弄个方便记忆的生成函数比较爽一点。
生成更新指令的函数如下
public static string SQLUpdate(string sTableName, string[] sField, string[] sValue, string sCondition)//根据条件,生成update的SQL指令 { string SQLStr = ""; SQLStr = "Update " + sTableName + " set "; if (sField.Length == sValue.Length) { for (int i = 0; i < sField.Length; i++) { SQLStr += sField[i] + "=" + sValue[i] + ","; } } else SQLStr = ""; SQLStr = SQLStr.Substring(0, SQLStr.Length - 1); SQLStr += " where " + sCondition; return SQLStr; }这里用了4个变量,第一个是表名,表示需要操作的表,第二、三个标量都是字符串数组,前者是需要更新的字段名,后者是对应值,最后一个是筛选的条件。注意这只是生成SQL指令,不会执行的,需要执行要配合SQLCom函数。
生成插入指令的函数如下
public static string SQLInsert(string sTableName, string[] sField, string[] sValue)//根据条件,生成Insert的SQL指令 { string SQLStr = ""; SQLStr = "Insert Into " + sTableName + " ( "; if (sField.Length == sValue.Length) { for (int i = 0; i < sField.Length; i++) { SQLStr += sField[i] + ","; } SQLStr = SQLStr.Substring(0, SQLStr.Length - 1) + ") Values("; for (int i = 0; i < sField.Length; i++) { SQLStr += sValue[i] + ","; } SQLStr = SQLStr.Substring(0, SQLStr.Length - 1) + ")"; } else SQLStr = ""; return SQLStr; }和更新的指令差不多,少了个筛选条件而已。
公共函数和配置文件读写基本就这些内容了,如果后面还有需要的在添加或修改。
相关文章推荐
- 2个读写ini配置文件的函数
- 一个用C#编写的自动读写配置文件的开源组件
- 一个用C#编写的自动读写配置文件的开源组件--V1.0.2版本
- 一个用C#编写的自动读写配置文件的开源组件
- 一个用C#编写的自动读写配置文件的开源组件
- 一个用C#编写的自动读写配置文件的开源组件
- 文件同步工具rsync配置管理
- c++ 实现对配置文件的读写 根据windows API 函数简单改写
- Linux C 读写修改删除配置文件函数
- 【工作总结】一组关于key=value类似配置文件的读写操作函数
- 在VC中读写ini配置文件的函数
- 在VC中读写ini配置文件的函数
- LINUX C 读写修改删除配置文件函数
- 读写配置文件函数(.ini文件)
- VBScript的PDF转换工具.6.辅助函数:配置文件读取
- c/c++写的比较好的读写配置文件的函数或者类
- c/c++写的比较好的读写配置文件的函数或者类
- 黑马程序员--06.管理配置文件--【框架和工具】【配置文件的管理】
- c++编写打开文件进行读写的函数
- vc 用函数读写INI配置文件