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
你发现你登录成功了,那怎么解决呢?下回分解。。。。