一个实训练习,有关于连接access数据库,需要创建一个关于数据库连接的类
我不会的,都有注释的,如果我自己写的地方有错误也希望能帮我改改,会的帮我看看,是关于access数据库的,谢谢了!class DBhelp
    {
        OleDbConnection cn;
        OleDbCommand cm;
        OleDbDataReader dr;
        OleDbDataAdapter da;
        public DBhelp()//构造函数
        {
            cn=new OleDbConnection();//创建OleDbConnection实例
            cn.Open();//打开连接
        }
        public OleDbCommand CM(string sqlstr)//定义一个用于创建OleDbCommand的方法
        {
            cm = new OleDbCommand();//创建OleDbCommand实例
            cm.Connection = cn;//设置连接属性
            cm.CommandText = sqlstr;//设置命令文本属性
            return sqlstr;//返回命令对象
        }
        public OleDbDataReader DR()//定义一个用于创建OleDbDataReader的方法
        {
            //调用命令对象的方法,用于获得OleDbDataReader实例
            //返回OleDbDataReader实例
        }
        public OleDbDataAdapter DA(string sqlstr)//定义一个用于创建OleDbDataReader的方法
        {
            //创建OleDbDataAdapter实例
            //返回OleDbDataAdapter实例
        }
        public void CLO()//定义一个用户关闭连接的方法
        {
            cn.Close();
        }
        }

解决方案 »

  1.   

    cn=new OleDbConnection();//创建OleDbConnection实例
    cn.Open();//打开连接
    你这样写,连设置连接字符串的机会都没有,运行不就报错了?
      

  2.   

    cn=new OleDbConnection();//创建OleDbConnection实例
    cn.Open();//打开连接
    你这样写,连设置连接字符串的机会都没有,运行不就报错了?
      

  3.   

    private void button1_Click(object sender, EventArgs e)
            {
                if (textBox1.Text == "")                errorProvider1.SetError(textBox1, "不能为空!");
                else errorProvider1.Clear();
                
                    if (textBox2.Text == "")                    errorProvider1.SetError(textBox2, "密码不能为空!");
                if(textBox1.Text!=""&&textBox2.Text!="")
                {
                    bool b;
                    Data dt=null;
                    OleDbCommand cm=null;
                    OleDbDataReader dr=null;
                    try
                    {
                        dt=   //创建Data实例
                            cm=    //创建command实例                        dr=    //创建datareader实例
                            b=dr.Read();  //读第一条记录
                        while(b)
                        {
                            if()//输入密码和数据库中的密码相同
                            {
                                Form2 zct=new Form2();
                                //保存用户名于静态成员中(在前面定义过两个静态公有成员,用于储存用户名和权限)
                                //保存密码于静态成员中
                                zct.Show();
                                this.Hide();
                                break;
                            }
                            //读取下一条记录
                        }
                        if( )
                            //没有该用户或密码错误
                        {
                            MessageBox.Show("登陆有误!","提示");
                        }
                        catch(Exception ex)
                    {
                            MessageBox.Show("登陆有误!","提示");
                        }
                    finally 
                    {
                        dr.Close();
                        //关闭连接
      

  4.   

    access数据库没有用户名密码的,就帮我把我晒出来的注释帮我看看就行了,谢谢了,小弟刚刚接触ado数据库的知识,所以好多不会的。希望能看着代码然后学习
      

  5.   

     连接数据库的字符串呢?
    先要有连接数据库的字符串才能进行表操作啊!
    比如:
    public string Source = "Server=(local);integrated security=SSPI;DataBase=(数据库名称)";
    SqlConnection conn = new SqlConnection(Source);
    SqlCommand cmd = new SqlCommand(str, conn);
    cmd...
      

  6.   


    LZ第一次上CSDN吗?怎么贴的代码这么乱啊,不会贴??
    看第一眼就眼花了,不过还是看到一点问题。
    就是判断语句里的,很大个漏洞啊,试下这样写吧:
    string.IsNullOrEmpty(textBox1.Text.Trim())
      

  7.   

    using System;
    using System.Data;
    using System.Data.OleDb;
    namespace Power_AppCode
    {
     public class DataBase
     {
      // 连接数据源
      private OleDbConnection conn = null;
      /// <summary>
      /// 数据源
      /// </summary>
      /// <param name="conStr">数据源连接字符串</param>
      public DataBase(string conStr)
      {
       conn = new OleDbConnection(conStr);
      }
      /// <summary>
      /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
      /// </summary>
      /// <param name="sql">查询语句</param>
      /// <returns>DataSet</returns>
      public DataSet GetDataSet(string sql)
      {
       DataSet ds = new DataSet();
       try
       {
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        cmd.CommandTimeout = 20;
        System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
        adapter.Fill(ds, "tempTable");
       }
       catch (Exception e)
       {
        ds = null;
       }
       finally
       {
        this.Close();
       }
       return ds;
      }
      /// <summary>
      /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
      /// </summary>
      /// <param name="sql">查询语句</param>
      /// <param name="sRecord">开始记录数</param>
      /// <param name="mRecord">最大记录数</param>
      /// <returns>DataSet</returns>
      public DataSet GetDataSet(string sql, int sRecord, int mRecord)
      {
       DataSet ds = new DataSet();
       try
       {
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        cmd.CommandTimeout = 20;
        System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
        adapter.Fill(ds, sRecord, mRecord, "tempTable");
       }
       catch (Exception e)
       {
        ds = null;
       }
       finally
       {
        this.Close();
       }
       return ds;
      }
      /// <summary>
      /// 对数据库的增,删,改的操作
      /// </summary>
      /// <param name="sql">SQL语句</param>
      /// <returns>是否成功</returns>
      public bool ExecuteDataBase(string sql)
      {
       bool succeed = false;
       int cnt = 0;
       try
       {
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        cmd.CommandTimeout = 20;
        if (this.Open())
         cnt = cmd.ExecuteNonQuery();
       }
       catch (Exception e)
       {
        e.ToString();
       }
       finally
       {
        if (cnt > 0)
        {
         succeed = true;
        }
        this.Close();
       }
       return succeed;
      }
      /// <summary>
      /// 获得该SQL查询返回的第一行第一列的值,如果没有查询到则返回NULL
      /// </summary>
      /// <param name="sql">查询语句</param>
      /// <returns>返回的第一行第一列的值</returns>
      public string GetScalar(string sql)
      {
       string str = null;
       try
       {
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        if (this.Open())
         str = cmd.ExecuteScalar().ToString();
       }
       catch (Exception e)
       {
        e.ToString();
       }
       finally
       {
        this.Close();
       }
       return str;
      }  /// <summary>
      ///  获得该SQL查询返回DataTable,如果没有查询到则返回NULL
      /// </summary>
      /// <param name="sql">查询语句</param>
      /// <returns></returns>
      public DataTable GetDataTable(string sql)
      {
       DataTable tb = null;
       DataSet ds = this.GetDataSet(sql);
       if (ds != null)
       {
        tb = ds.Tables["tempTable"];
       }
       return tb;
      }
      /// <summary>
      /// 打开数据库连接.
      /// </summary>
      private bool Open()
      {
       bool succeed = false;
       try
       {
        if (conn.State == System.Data.ConnectionState.Closed)
        {
         conn.Open();
         succeed = true;
        }
        else if (conn.State == System.Data.ConnectionState.Broken)
        {
         conn.Close();
         conn.Open();
         succeed = true;
        }
        else if(conn.State == System.Data.ConnectionState.Open)
        {
         succeed = true;
        }
       }
       catch(Exception e)
       {
        e.ToString();
       }
               
       return succeed;
      }
      /// <summary>
      /// 关闭数据库连接
      /// </summary>
      public void Close()
      {
       if (conn != null)
       {
        conn.Close();
       }
      }
      /// <summary>
      /// 释放数据库连接资源
      /// </summary>
      public void Dispose()
      {
       if (conn != null)
       {
        conn.Dispose();
        conn = null;
       }
      }
     }
    }
      

  8.   

    随便搞的,自己看着搞吧。呵呵。vb.net的
    Imports System.IOModule CommonDB
        Dim DBConn As OleDb.OleDbConnection
        Dim strConnection As String
        Dim SqlCmd As OleDb.OleDbCommand
        Dim strSql As String
        Dim h_Adapter As OleDb.OleDbDataAdapter    Public Sub DBConnection()
            ' GetConnStrProfile():从配置文件读取数据库连接字符串,方法略
            'strConnection = GetConnStrProfile()
            strConnection = GetXmlParam("db-config")
            DBConn = New OleDb.OleDbConnection(strConnection)
            Try
                DBConn.Open()
            Catch ex As Exception        End Try
        End Sub    Public Sub DBDisConnection()
            DBConn.Close()
            DBConn = Nothing
        End Sub
        Public Sub GetDataFromDB(ByVal strSql As String, ByVal ds As DataSet, ByVal TableName As String)
            SqlCmd = New OleDb.OleDbCommand(strSql, DBConn)
            h_Adapter = New OleDb.OleDbDataAdapter(SqlCmd)
            h_Adapter.Fill(ds, TableName)    End Sub    Public Function ExecuteDB(ByVal strSql As String) As Boolean
            SqlCmd = New OleDb.OleDbCommand(strSql, DBConn)
            If SqlCmd.ExecuteNonQuery() > 1 Then
                Return True
            End If    End FunctionEnd Module
      

  9.   

    access 数据库跟sql数据库是一样的,就是连接字符串不一样