当前位置:编程学习 > C#/ASP.NET >>

连接数据库问题

小弟正在看一学生管理系统 ,其中有些地方不是很理解!请高手指点!感激不尽

源码: private void button1_Click(object sender, EventArgs e)
        {
            string oldconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xsxjdb.mdb";
            OleDbConnection oleDbConnection1 = new OleDbConnection(oldconn);
            oleDbConnection1.Close();
            oleDbConnection1.Open();
            string sql;
            OleDbCommand cmd = new OleDbCommand("", oleDbConnection1);
            if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" || textBox4.Text.Trim() == "" || textBox5.Text.Trim() == "" || textBox6.Text.Trim() == "")
            {
                MessageBox.Show("请填写全部信息!", "提示");
            }
            else
            {
                DB.cn.Close();
                DB.cn.Open();
                OleDbCommand oldcomm = new OleDbCommand("", DB.cn);
                
                sql = "select ClassNum from ClassInfo where ClassNum='" + textBox1.Text.Trim() + "'";
                oldcomm.CommandText = sql;
                if (oldcomm.ExecuteScalar() != null)
                {
                    MessageBox.Show("你输入的班级编号已经存在,请重新输入!", "错误提示");

                }
                else
                {                
                sql = "insert into ClassInfo  values ('" + textBox1.Text.Trim() + "','" + textBox2.Text.Trim() + "','" + textBox3.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + textBox5.Text.Trim() + "','" + textBox6.Text.Trim() +"' )";
                oldcomm.CommandText = sql;
                oldcomm.ExecuteNonQuery();
                MessageBox.Show("添加成功!", "提示");
                DB.cn.Close();

        }
        oleDbConnection1.Close();

      }

   }

定义了oldconn    string oldconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xsxjdb.mdb";
                 OleDbConnection oleDbConnection1 = new OleDbConnection(oldconn);
用来连接数据库,但是它又添加了新类,但是在新类中又定义了:(又定义了一个cn)
class DB
    {
        public static OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xsxjdb.mdb");
    }

为什么定义了一个oldconn,在新类里又定义了一个cn  不解  请高手指点!







--------------------编程问答-------------------- oldconn  连接字符串
cn   OleDbConnection 对象 --------------------编程问答-------------------- 而且在else开始出现DB.cn.Close(); DB.cn.Open();为什么要先关闭再打开呢?
--------------------编程问答-------------------- 尽信书不如无书~ --------------------编程问答--------------------
引用 2 楼 yanpengtao 的回复:
而且在else开始出现DB.cn.Close(); DB.cn.Open();为什么要先关闭再打开呢?


防止上次用到的没有关闭!

oldconn 连接字符串
cn OleDbConnection 对象 --------------------编程问答-------------------- 应该是定义了oleDbConnection1 ,在新类里为什么要定义cn!!! --------------------编程问答-------------------- 再问一下:应该是定义了oleDbConnection1 ,在新类里为什么还要定义cn!!!在else里面不能用oleDbConnection1.Open()来打开吗???? --------------------编程问答--------------------
引用 1 楼 xiaofan_sap 的回复:
oldconn 连接字符串
cn OleDbConnection 对象

顶! --------------------编程问答-------------------- 这段代码不是某小学生写的吧?
1、前面6行全部是废代码,有了cn OleDbConnection 对象 oleDbConnection1 就没有必要了,代码中也没有用到。
2、而且在else开始出现DB.cn.Close(); DB.cn.Open();为什么要先关闭再打开呢?
因为
DB.cn是静态的,为了防止以前使用后没有关闭,所以要先关闭后打开。
不过为什么要使用静态连接对象,是个奇怪的问题,这样会占用系统资源,降低性能。 --------------------编程问答-------------------- 这代码别看了。 --------------------编程问答-------------------- 实践的作用是伟大的! --------------------编程问答-------------------- 不要意思:分数用完了,在这里凑个热闹,请楼主海涵。

现有一段程序,原来是用PHP写的,涉及同时访问两个数据库(MS-SQL, MYSQL),要把他改成ASPX的,有哪位高手愿意帮一下忙(有偿的),请和我联系。

谢谢楼主,谢谢高手。 --------------------编程问答-------------------- 为什么说数据类型不匹配?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,