说明,winform程序,只有一个窗体,有查询,添加,更新,删除操作,为了代码简短,省掉了一些校验代码,请高手们看看程序中的数据库操作部分有无优化之处,其他的不用管。此程序用vs2005编写,可以正常运行。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace rkinfo
{
    public partial class frmxqgl_bind : Form
    {
        public frmxqgl_bind()
        {
            InitializeComponent();
        }        private void frmxqgl_bind_Load(object sender, EventArgs e)
        {
                     
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=icc.mdb");
            OleDbDataAdapter dap = new OleDbDataAdapter("select * from qinfo", conn);
            dap.Fill(dataSet1, "qinfo");
            
            bindingSource1.DataMember = "qinfo";            ////绑定网格控件/////
            dataGridView1.DataSource = bindingSource1;            /////绑定文本框///////
            t1.DataBindings.Add ("text", bindingSource1, "qid");
            t2.DataBindings.Add ("text", bindingSource1, "qname");
            t3.DataBindings.Add("text", bindingSource1, "qxxzx");
            t4.DataBindings.Add("text", bindingSource1, "qtr");
            t5.DataBindings.Add("text", bindingSource1, "qbb");            lblcount.Text = "当前记录数:"+bindingSource1.Count.ToString ();            conn.Close();
        }        ///查询单条记录
        private void button1_Click(object sender, EventArgs e)
        {
            string bh = tfind.Text.Trim();
            if (bh == "")
            {
                MessageBox.Show("查询编号不能空。", "错误");
                return;
            }
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=icc.mdb");
            OleDbDataAdapter dap = new OleDbDataAdapter("select * from qinfo where qid="+bh, conn);            dataSet1.Clear();
            dap.Fill(dataSet1, "qinfo");            if (conn.State ==ConnectionState.Open)
               conn.Close();
        }        ///查询所有记录
        private void cmdall_Click(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=icc.mdb");
            OleDbDataAdapter dap = new OleDbDataAdapter("select * from qinfo ", conn);
            dataSet1.Clear();
            dap.Fill(dataSet1, "qinfo");            conn.Close();
        }        //删除一条记录
        private void cmddel_Click(object sender, EventArgs e)
        {
            string bh = t1.Text.Trim();
            if (bh == "")
            {
                MessageBox.Show("当前无记录,不能删除任何数据。", "错误");
                return;
            }
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=icc.mdb");
            conn.Open();
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandText = "delete from qinfo where qid="+bh;
            int i = cmd.ExecuteNonQuery();
            if (i == 1)
            {
                MessageBox.Show("成功删除1条记录。", "提示");
            }
            else
            {
                MessageBox.Show("删除失败。", "提示");
            }
            OleDbDataAdapter dap = new OleDbDataAdapter("select * from qinfo ", conn);
            dataSet1.Clear();
            dap.Fill(dataSet1, "qinfo");            conn.Close();
        }        //添加一条记录
        private void cmdadd_Click(object sender, EventArgs e)
        {
            string tname = t2.Text.Trim();
            string tid = t1.Text.Trim();
            string zx = t3.Text.Trim();
            Single tr =Convert .ToSingle ( t4.Text.Trim());
            Single bb = Convert.ToSingle(t5.Text.Trim());
            if (tid == "")
            {
                MessageBox.Show("没有数据可以添加", "提示");
                return;
            }
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=icc.mdb");
            conn.Open();
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandText = "insert into qinfo(qid,qname,qxxzx,qtr,qbb) values('"+tid+"','"+tname +"','"+zx+"',"+tr+","+bb+")";
            int i = cmd.ExecuteNonQuery();
            if (i == 1)
            {
                MessageBox.Show("成功添加1条记录。", "提示");
            }
            else
            {
                MessageBox.Show("添加失败。", "提示");
            }
            OleDbDataAdapter dap = new OleDbDataAdapter("select * from qinfo ", conn);
            dataSet1.Clear();
            dap.Fill(dataSet1, "qinfo");            conn.Close();
        }        //更新一条记录
        private void cmdmodi_Click(object sender, EventArgs e)
        {
            string bh = t1.Text.Trim();
            if (bh == "")
            {
                MessageBox.Show("当前无记录,不能修改任何数据。", "错误");
                return;
            }
            string tname = t2.Text.Trim();
            string xxzx = t3.Text.Trim();
            Single dr = Convert.ToSingle(t4.Text.Trim());
            Single bb = Convert.ToSingle(t5.Text.Trim());
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=icc.mdb");
            conn.Open();
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandText = "update qinfo set qname='"+tname+"',qxxzx='"+xxzx+"',qtr="+dr+",qbb="+bb+" where qid=" + bh;
            int i = cmd.ExecuteNonQuery();
            if (i == 1)
            {
                MessageBox.Show("成功修改1条记录。", "提示");
            }
            else
            {
                MessageBox.Show("修改失败。", "提示");
            }
            OleDbDataAdapter dap = new OleDbDataAdapter("select * from qinfo ", conn);
            dataSet1.Clear();
            dap.Fill(dataSet1, "qinfo");            conn.Close();
        }        
            
    }
}

解决方案 »

  1.   

    对于初学者就是仿照例子程序写代码,代码没有问题。公共部分可以提出来,比如:
                OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=icc.mdb"); 
                OleDbDataAdapter dap = new OleDbDataAdapter("select * from qinfo", conn); 
                dap.Fill(dataSet1, "qinfo"); 每个操作都有的就可以做一个公共的,如果可以,把查、增、删、改做一个类,传递参数实现,单独做一个数据层,你这部分单独做一个显示层,如果要对数据验证或执行特殊的业务逻辑,就再加一个逻辑层。
    呵呵,慢慢学吧!
      

  2.   

    OleDbConnection  OleDbCommand  封装成一个方法. 
      

  3.   

    最好用参数
    "select * from biao where id=@id"      cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
                cmd.Parameters["@id"].Value = 20; ;
      

  4.   

    cmd.CommandText = "insert into qinfo(qid,qname,qxxzx,qtr,qbb) values('"+tid+"','"+tname +"','"+zx+"',"+tr+","+bb+")"; cmd.CommandText = "update qinfo set qname='"+tname+"',qxxzx='"+xxzx+"',qtr="+dr+",qbb="+bb+" where qid=" + bh; 注入者的快速通道;彻夜调试大会的入门券