写不进去数据库啊,急,求帮忙看看,教教

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace 专科医院门诊系统_眼科_
{

public partial class 挂号界面 : Form
{

    OleDbConnection con = new OleDbConnection();
    string str = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\design\vc\project\专科医院门诊系统(眼科)\db1.accdb";
    public 挂号界面()
    {
        InitializeComponent();
        con.ConnectionString = str;
        button1.Click += new EventHandler(button1_Click);
        button2.Click += new EventHandler(button2_Click);
        button3.Click += new EventHandler(button3_Click);
    }
    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox3_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox4_TextChanged(object sender, EventArgs e)
    {

    }
    private void textBox5_TextChanged(object sender, EventArgs e)
    {

    }
    private void textBox6_TextChanged(object sender, EventArgs e)
    {

    }   
    private void button1_Click(object sender, EventArgs e)
    {
        挂号缴费选择界面 frm = new 挂号缴费选择界面();
        frm.Show();
        Hide();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        if (textBox1.Text != "" && textBox2.Text != ""&& textBox3.Text != ""&& textBox4.Text != ""&& textBox5.Text != ""&& textBox6.Text != "")
        {
        string a = textBox1 .Text ;
        string b = textBox2 .Text ;
        string c = textBox3 .Text ;
        string d = textBox4 .Text ;
        string f = textBox5 .Text ;
        string g = textBox6 .Text ;
        OleDbCommand cmd = new OleDbCommand(@"insert into patient([ID],名字,年龄,性别,电话号码,科室)  values(" + a + ",'" + b + "'," + c + ",'" + d + "','" + f + "','" + g + "')");
        con.Open();
        cmd.Connection = con;
        cmd.ExecuteNonQuery();
        con.Close();
        MessageBox.Show("挂号成功!");
        }
        else
        {

         MessageBox .Show ("请输入完整的挂号信息");
        }



        textBox1.Text = textBox2.Text = textBox3.Text = textBox4.Text = textBox5.Text = textBox6.Text = string.Empty;
    }
    private void button3_Click(object sender, EventArgs e)
    {
        textBox1.Text = textBox2.Text = textBox3.Text = textBox4.Text = textBox5.Text =textBox6.Text = string.Empty;
    }
    private void 挂号界面_Load(object sender, EventArgs e)
    {

    }
}

}
图片说明
图片说明
图片说明

图片说明
解决了。看图

发现了一些问题,你检查下:
(1)你有一个是否已收费的字段,是不可空的,但是你的查询语句没有它

 OleDbCommand cmd = new OleDbCommand(@"insert into patient([ID],名字,年龄,性别,电话号码,科室,是否已收费)  values('" + a + "','" + b + "'," + c + ",'" + d + "','" + f + "','" + g + "',0)");

另一个,id是字符串,你没有引号。
还有你的挂号的几个字段的长度都是0,你需要修改。

你的文件中有很多数据库,你最好把不用的删除了,以免你插入了一个数据库,打开看的是另一个,以为没有插入,实际上根本不是那一个。

这个问题看你问了很多次了。
但是光看代码不太方便调试,建议你把所有代码和数据库做成压缩文件,放在网盘中,在这里贴出地址。

我可以帮你调试。

光看代码你也知道,来来回回很多次才能解决问题,浪费大家的时间。

你用的什么压缩软件,解压出来全是乱码

图片说明
建议你用winrar压缩,另外,无需传别的,只要程序目录就可以。

你对应的acces是12.0版本吗,和你的连接字符串一致吗?