1 /**//** 2 * 程序名称:使用.NET连接MySql数据库 3 * 作者:吴磊 4 * 日期:2009年01月17日 5 */ 6 7 // 使用MySql.Data.MySqlClient命名空间 8 using System; 9 using MySql.Data.MySqlClient; 10 11 namespace Project_Personnel.db 12  { 13 class dbManage 14 { 15 /**//// 16 /// 连接到MySql数据库并返回连接对象 17 /// 18 /// 数据库连接对象 19 private static MySqlConnection getCon() 20 { 21 MySqlConnection myCon = null; 22 try 23 { 24 /**//* 25 * Server:数据库服务器 。localhost表示本机 26 * Database:数据库名称 。school表示mySql中一个名为school的数据库 27 * Uid:用户名 28 * Pwd:密码 29 * CharSet:使用的字符编码 。不设置可能产生乱码 30 */ 31 myCon = new MySqlConnection("Server=localhost;Database=school; Uid=root;Pwd=123;CharSet=utf8;"); 32 myCon.Open(); 33 } 34 catch (MySqlException e) 35 { 36 //抛出连接MySql数据库的异常 37 throw new Exception(e.Message); 38 } 39 return myCon; 40 } 41 42 public static void Main() 43 { 44 try 45 { 46 //从shool表中检索数据的sql语句(别误会,我是在school数据库中建立了一个school表) 47 MySqlCommand myCmd = new MySqlCommand("select * from school", getCon()); 48 49 //执行检索语句并将执行结果赋值给MySqlDataReader对象 50 MySqlDataReader myReader = myCmd.ExecuteReader(); 51 52 //进行读取 53 while (myReader.Read()) 54 { 55 //myReader的FieldCount属性表示列数 56 for (int i = 0; i < myReader.FieldCount; i++) 57 { 58 /**//* 59 * 提示:如果使用此if语句,会产生异常:数据为空,不能对空值调用此方法或属性 。 60 * 判断索引为i的列中的值是否为空,如果为空输出NULL 61 */ 62 if (!myReader[i].Equals(DBNull.Value)) 63 { 64 Console.Write("{0,10}", myReader[i]); 65 } 66 else 67 { 68 Console.Write("{0,10}", "Null"); 69 } 70 } 71 //换行 72 Console.WriteLine(); 73 } 74 } 75 //捕获MySql异常 76 catch (MySqlException e) 77 { 78 Console.WriteLine(e.Message); 79 } 80 //捕获其他异常 81 catch (Exception e) 82 { 83 Console.WriteLine(e.Message); 84 } 85 finally 86 { 87 Console.ReadKey(); 88 } 89 } 90 } 91 }
|