C#可视化程序设计第三章(3,4)

异常处理

1.异常处理介绍程序员

■任何完美的应用程序和技术高明的程序员,都不能保证程序绝对不出差错。算法

■在代码中加入异常处理能够捕获末知的异常,并对异常进行处理,能够防止应用程序的崩溃,sql

并向用户友好地给出错误提示。数据库

 

2.程序中的错误能够分为三类:ui

■编译错误:spa

在程序编译时产生的错误,一般由错误的语法或使用的资源不存在等缘由引发。产生编译错误时程序没法3d

运行,编译错误能够经过集成开发环境VS发现。调试

■逻辑错误:code

逻辑错误,不影响程序的正常运行,但会致使实际运行结果与预期结果不-致。一般是算法出现了错误,server

能够经过调试程序,对比指望值和实际值发现。

■异常:

在程序运行过程当中,干扰程序正常运行时产生的错误称为异常。异常是没法避免的,可是可以预计。为了

使应用程序出现异常时不至于崩溃终止,必须对可能出现异常的代码进行异常处理。

异常处理结构:

//try...catch结构
//语法:
try{
  //可能出现的异常代码
}
catch (Exception e){
  //捕获异常代码,进行异常处理的代码
}

//try...catch...finally结构
try{
  //可能出现的异常代码
}
catch (Exception e){
  //捕获异常代码,进行异常处理的代码
}
finally{
  //释放代码
}

//try.......finally结构
try{
  //可能异常代码
}
finally{
  //释放代码
}

其中的Exception类的对象包含异常详细信息的对象,Exception 对象的经常使用属性有:

(1) Message: 包含辅助性文字说明,指出抛出异常的缘由。

(2) Source:包含生成异常的程序集名称。

注意:

■try块不能省略,catch和finally块能够省略, 但不能同时省略

■finally块不管是否发生异常,都会被执行。

            //定义链接字符串
            SqlConnection conn = null;
            SqlDataReader reader = null;
            try
            {
                string sql = "server=.;database=GMP;uid=sa;pwd=985199";//链接字符串
                conn = new SqlConnection(sql);//创对象
                conn.Open();//打开
                if (conn.State == System.Data.ConnectionState.Open)
                {
                    Console.WriteLine("链接成功");
                    string cz = "select Name,Grader,Emal,Address from Users"; //sql语句
                    //建立command对象
                    SqlCommand cmd = new SqlCommand(cz, conn);
                    reader = cmd.ExecuteReader();//执行sql命令返回sqldatareader对象
                    int i = 1;//设序号
                    Console.WriteLine("ID\t姓名\t性别\t邮箱\t\t地址");
                    while (reader.Read())
                    {
                        Console.WriteLine(i + "\t{0}\t{1}\t{2}\t\t{3}", reader["Name"], reader["Grader"], reader["Emal"], reader["Address"]);
                        i++;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                if (conn != null)
                {
                    conn.Close();
                }
            }

3.DBHelper类

 

 class DBHelper
    {  
        /// <summary>
        /// 
        /// </summary>
        //类里面只能是属性,方法,定义字段
        public static string cons = "";
        public static  SqlConnection conn ;
        //三个方法:链接数据库方法,执行增删改方法,执行查询方法
        //1  
        public static bool connect() {
            conn = new SqlConnection(cons);
            conn.Open();
            if (conn.State == System.Data.ConnectionState.Open)
            {             
                return true;
            }
            else {             
                return false;
            }
            
        }
        //2
        public static int Excut(string sqlstr) {
            SqlCommand cmd = new SqlCommand(sqlstr, conn);
            int i = cmd.ExecuteNonQuery();         
            return i;
        }
        //3
        public static SqlDataReader Excutread(string sqlstr) {
            SqlCommand cmd = new SqlCommand(sqlstr,conn);
            SqlDataReader  reader = cmd.ExecuteReader();  
            return reader;
        }
        public static void gbi() {
            conn.Close();
        }
    }

 

 static void Main(string[] args)
        {
            DBHelper.cons = "server=.;database=GMP;uid=sa;pwd=985199";
            string yj = "select Name from Users";
            if (DBHelper.connect()) {
                SqlDataReader reader = DBHelper.Excutread(yj);
                while (reader.Read()) {
                Console.WriteLine(reader["Name"]);
            }
                DBHelper.gbi();
            }
            }

/

相关文章
相关标签/搜索