vs2008连接Acess数据库

1.先在Microsoft office下找到Access,创建自己的数据库

2.在vs下创建GUI窗体,输入代码:

以下是两种显示数据库信息的方式:ListBox和Gridview,第二个比较正规

      OleDbConnection mycon;
        OleDbCommand myCommand;
        OleDbDataReader myDataReader;

        public void OleCreateConnection(string cmdstr)//创建连接
        {
            string myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\Administrator\\桌面\\new.mdb";//第二个参数是指所在数据库的路劲,之所以有两个斜杠是因为这是字符串,两个是转义
            mycon = new OleDbConnection(myConnectionString);
            try
            {
                mycon.Open();
                MessageBox.Show("连接数据库成功");
                myCommand = new OleDbCommand(cmdstr, mycon);
                myDataReader = myCommand.ExecuteReader();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string cmdstr = "select * from T_Student";
            OleCreateConnection(cmdstr);
            try
            {
              //使用listbox显示数据库信息的方法
                while (myDataReader.Read())//myDataReader相当于一个指针,指向查询值的最前面
                {
                    listBox1.Items.Add(myDataReader["编号"].ToString()+"   "+myDataReader["id"].ToString()+"   "+myDataReader["name"].ToString());//每一列的显示方式
                }
                myDataReader.Close();//每一次使用后必须关闭,否则无法对数据库进行其他的操作


                //使用DataGridView连接数据库的方法
                myDataReader = myCommand.ExecuteReader();
                BindingSource bs = new BindingSource();//和下一列的顺序最好不要颠倒
                bs.DataSource = myDataReader;
                dataGridView2.DataSource = bs;
                myDataReader.Close();


                mycon.Close();
               
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
3.如果你想修改显示的数据库的列的名称怎么办?在GridView控件右上角编辑列-》添加你要显示的列的个数-》在数据-》修改DataPropertyName改成数据库中的字段,在外观中修改HeaderText中添加你想显示的名称

4.如果你的数据库里面的表名和字段产生冲突时(有可能),比如说:user表中的username字段,那执行查询语句的时候很有可能会出错,解决办法:

select * from [user]取代select 8*from user.

5.当我们建立一个登录窗口时,查询语句该怎么写? "select * from T_User where username='"+textBox1.Text+"' and password= '"+textBox2.Text+"'";

看到中间连接字符串用的单引号了么?是的,对于字符串字段的变量,如果不使用单引号是会出错的,只有在字段是数字类型也就是整数的时候可以不用。

其次,判断这个是否有查询结果,可以使用OlebdDataReader的hasRows属性,为bool值

        private void button1_Click(object sender, EventArgs e)
        {
            string cmdstr = "select * from T_User where username='"+textBox1.Text+"' and password= '"+textBox2.Text+"'";
            OleCreateConnection(cmdstr);

            if (myDataReader.HasRows)
            {
                MessageBox.Show("登录成功");
            }
            else
            {
                MessageBox.Show("登录失败");
            }
        }

6.数据库漏洞,如果你的登录名随意写,密码:' or '1'='1

你发现你登录成功了,那怎么解决呢?下回分解。。。。

你可能感兴趣的:(vs2008连接Acess数据库)