如何编写程序使得数据库服务器变化时代码不需要重新编译
这个学期我们有ERP选修课,给我们上课是上个学期教我们数据库的老师,两个周前他布置了一份实验作业,要求如下:“将连接所需要的内容配置在文件中。当数据库服务器变化时所开发的系统无须修改和重新编译。”前一段时间一直很忙,直到这个周他在检查,才匆匆忙忙地去做。才发现,原来自己对数据库竟然这么生疏了,以前跟同学一起做大作业的时候为了图快速完成,一直都是他做数据库方面的,我做网络通信方面的。认识到了这个问题后,这个学期还有一个软件工程的大作业,于是我主动要求承担数据库方面的工作。而ERP基本上都是关于数据库的,正好借ERP的实验课来好好复习一下数据库的知识,顺便也为不到一个月后的软考做准备吧。
因为以前一直都是用C#做项目,比较容易上手。首先上网查了下资料,关于文件操作的,很久不动C#了,都忘记了,想当初为了做项目,就是边做边学,需要哪方面的知识就学哪方面,没有系统学过。
1: //从配置文件中读取服务器名2: StreamReader sr = File.OpenText("server.ini");3: string serverName = sr.ReadLine();接下来,是关于数据库连接的问题。首先要引入
然后连接数据库时,先定义三个成员变量,1: using System.Data.SqlClient;1: private SqlConnection objConnection;2: private SqlDataReader thisReader;3: private SqlCommand thisCommand;然后再在某个你想要的目录下,建立一个server.ini的配置文件,里面放上你的服务器名,格式为:“Server=服务器名”(不包括引号),再在所需要的地方填入以下代码:
1: string strConnection = "uid=jerrychoi;password=jerrychoi;";2: strConnection += "initial catalog=erpdata;";3:
4: //从配置文件中读取服务器名5: StreamReader sr = File.OpenText("server.ini");6: string serverName = sr.ReadLine();7:
8: //string serverName = "Server=JERRYCHOI-PC\\SQLEXPRESS;";9:
10: strConnection += serverName;
11: strConnection += "Connect Timeout=30";12: //MessageBox.Show(strConnection);13:
14: objConnection = new SqlConnection(strConnection);15: objConnection.Open();
16: MessageBox.Show("连接数据库成功!");17:
18:
19: // Create command for this connection20: thisCommand = objConnection.CreateCommand();
21:
22: // Specify SQL query for this command23: thisCommand.CommandText = "SELECT id, name from test";24:
25: // Execute DataReader for specified command26: thisReader = thisCommand.ExecuteReader();
再接下就是在需要显示数据的地方显示数据,可把以下代码放入其中:
1: if(thisReader.Read())2: {
3: // Output ID and name columns4: textBox_id.Text = Convert.ToString(thisReader["id"]);5: textBox_name.Text = Convert.ToString(thisReader["name"]);6: }
关于如何从数据库中读取数据,请参考以下教程,是《C#入门经典》的翻译作者发布的,这书我有,写得不错,推荐看下。