Mono学习2

稍熟悉了MonoDevelop和PostgreSql后,开始使用Linux系统安装使用Mono。

我在VM虚拟机下安装了Ubuntu12.04版,Ubuntu现在做的,启动越来越慢,唉。。

安装完成后,根据http://www.cnblogs.com/qqloving/archive/2011/10/29/2228934.html安装完成了Mono和MonoDevelop;

然后根据同样的方法,安装完成了PostgreSql9.1版和pgAdmin III,pgAdmin III安装完成后,根据

http://blog.csdn.net/xiaoniaozhubo/article/details/7520044 设置完成了数据库,至此开发环境和数据库全都安装完毕,下面可以测试

一下。


1. 先建立数据库

PostgreSql之前我并没有使用过,刚打开pgAdmin竟然有一种无从下手的感觉。。

PostgreSql初始会有一个postgres的库,我们不动它,新建了一个数据库Test,完成后在Schemas节下有一个public节(对于我来说

PostgreSql对权限及安全的控制达到了近乎‘恶心’的程度,它可以对每一个字段,每个人能有什么操作权限都能定义),你可以再添加新的节,

就好象同一个数据库中又有多个库一样!当然我们现在只是测试,PostgreSql的深入理解留待之后慢慢学。

在public节下新建表users,字段username(varchar(20)),age(int) ,据说表名和字段名最好小写,具体什么原因,以后再说。

表建好后,添加两条记录,右击users表节,选择Scripts->INSERT Script,进入脚本编写界面


运行,记录写入了数据库中。

因为刚使用pgAdmin III,对里面的功能不是很了解,找了半天没有找到能够像MSSQL那样能图形化的插入的功能,大家如果知道,希望能告诉我,谢谢。

2. 数据库弄好后,就可以启动MonoDevelop,建立一个Console程序,步骤和Windows下一模一样。

工程建立好后,添加一个新类ConnToSql,因为是数据库操作,所以我们要先添加相应的引用,编辑References,添加Npgsql和System.Data引用。

代码如下:

using System;
using Npgsql;
using System.Data;

namespace Hello_Mono
{
	public class ConnToSql
	{
		string connectStr;
		NpgsqlConnection npgConn;
		NpgsqlCommand npgComm;
		NpgsqlDataAdapter npgDA;
		
		public ConnToSql ()
		{
			connectStr = "uid=xxx; pwd=xxx; host=localhost; database=Test";
			npgConn = new NpgsqlConnection(connectStr);
		}
		
		public string[] GetUsers()
		{
			npgConn.Open();
			string sqlStr = "select * from users";
			npgComm = new NpgsqlCommand(sqlStr, npgConn);
			npgDA = new NpgsqlDataAdapter();
			npgDA.SelectCommand = npgComm;
			
			DataTable dt = new DataTable();
			int rowCount = npgDA.Fill(dt);
			if (rowCount == 0) return null;
			
			string[] res = new string[dt.Rows.Count];
			string str;
			for (int i = 0; i < dt.Rows.Count; i++)
			{
				str = "";
				for (int j = 0; j < dt.Columns.Count - 1; j++)
				{
					str += dt.Rows[i][j].ToString() + ",";
				}
				str += dt.Rows[i][dt.Columns.Count - 1].ToString() + ";";
				res[i] = str;
			}
			return res;
		}
	}
}

然后,MainClass编辑如下:

using System;
namespace Hello_Mono
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			TestConnToSql();
			Console.ReadKey();
		}
		
		private static void TestConnToSql()
		{
			ConnToSql conn = new ConnToSql();
			string[] users = conn.GetUsers();
			if (users == null) return;
			int len = users.Length;
			for (int i = 0; i < len; i++)
			{
				Console.WriteLine(users[i]);
			}
		}
	}
}

F5运行结果如下:


至此,本次安装测试完成




你可能感兴趣的:(Mono)