我刚刚学,今天看了视频教程,新建了个项目,添加了数据库,添加了一个表,表里就只有:ID、Name、Age三列,我学着查询,成功了,我学着插入失败了无语了,这是我的原码:
 private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“database1DataSet.Table1”中。您可以根据需要移动或删除它。
            this.table1TableAdapter.Fill(this.database1DataSet.Table1);
            string datadir=AppDomain.CurrentDomain.BaseDirectory;
            if(datadir.EndsWith(@"\bin\Debug\")||datadir.EndsWith(@"\bin\Release\"))
            {
                datadir=System.IO.Directory.GetParent(datadir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("Datadirectory",datadir);
            }
        }
        private void button4_Click(object sender, EventArgs e)
        {
            using (SqlConnection connss = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))
            {
                string sql = "Insert into Table1(Name)values('abc')";
                SqlCommand cmd = new SqlCommand(sql,connss);
                connss.Open();
                cmd.ExecuteNonQuery();  
            }
        }
    }疑问来了,我这个写的应该对吧但是执行后查询的倒是可以(查询代码没发),插入的就不行了,点击插入按钮后去“显示表数据”里查看没有插入的结果,后来,我蒙了,插入数据后表中找不到数据,打开程序后dataGridView1里竟然发现了插入的数据,但是表里怎么都没有,我看人家视频教程里,插入数据后在显示表数据里刷新一下就有了,我这个咋没有呢,老大们来帮帮忙把,真郁闷啊,

解决方案 »

  1.   

    Table1中除了Name字段,还有其他字段嘛?
    看看你点击添加按钮后,数据库表中是否插入了数据?
      

  2.   

    除了Name还有个Age,点击插入后表中没有插入的数据。
      

  3.   


    第一个:AppDomain.CurrentDomain.SetData("Datadirectory",datadir);
    第二个:using (SqlConnection connss = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))Form1_Load里的 Datadirectory 拼错了,应该是DataDirectory
      

  4.   

    哈哈,和我当初遇到的情况一样。其实你已经插入了,不过是在bin/Debug里面的临时数据库,你的datagrideview显示的就是那个数据库,默认下每一次编译运行都会从原始数据库复制到debug目录下,运行时修改的只是debug的数据库