OleDbConnection mdbcnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=GF.mdb");
                string mysql = @"INSERT INTO [tbStory]([Title],[Classify],[Story],[From],[About],[Time],[Rank],[Istell])VALUES('" + tbTitle.Text + "','" + tbClassify.Text + "','" + tbStory.Text + "','" + tbFrom.Text + "','" + tbAbout.Text + "','"+DateTime .Now .Date +"','0','否')"; 
                OleDbCommand mdbcmd = new OleDbCommand(@"select * FROM tbStory", mdbcnn);
                mdbcnn.Open();
                OleDbCommand myCommand = new OleDbCommand(mysql , mdbcnn);
                if (myCommand.ExecuteNonQuery() > 0)
                {
                    MessageBox.Show("添加成功!");
                }
                else
                {
                    MessageBox.Show("sorry!还没添加进去哦!");
                }
                mdbcnn.Close();C# sql插入语句,操作都没有错,就是数据没插进去,什么回事啊?显示“添加成功”

解决方案 »

  1.   

    代码没问题。检查一下,你看的Access数据库文件,是不是程序中所用的这个数据库GF.mdb在mdbcnn.Close()后加入  MessageBox.Show(System.Environment.CurrentDirectory);
    看弹出的文件夹下的GF.mdb
      

  2.   

      没用过access  
      

  3.   

    代码没问题。检查一下,你看的Access数据库文件,是不是程序中所用的这个数据库GF.mdb 
    // 同意,我也没看出来
      

  4.   

    显示“添加成功”,说明已经添加进去了。
    而你所说的没添进去,是因为你每点击“调试”一次,VS就会把Access数据库再复制到输出目录,这样你就看不到上次调试时添加的数据了。
      

  5.   

    你这边连接的SQL语句是查询语句,没有执行insert语句,当然没有数据啦。
    OleDbConnection mdbcnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=GF.mdb"); 
                    string mysql = @"INSERT INTO [tbStory]([Title],[Classify],[Story],[From],[About],[Time],[Rank],[Istell])VALUES('" + tbTitle.Text + "','" + tbClassify.Text + "','" + tbStory.Text + "','" + tbFrom.Text + "','" + tbAbout.Text + "','"+DateTime .Now .Date +"','0','否')"; 
                    OleDbCommand mdbcmd = new OleDbCommand(@"select * FROM tbStory", mdbcnn); 
                    mdbcnn.Open(); 
                    OleDbCommand myCommand = new OleDbCommand(mysql , mdbcnn); 

                    if (myCommand.ExecuteNonQuery() > 0) 
                    { 
                        MessageBox.Show("添加成功!"); 
                    } 
                    else 
                    { 
                        MessageBox.Show("sorry!还没添加进去哦!"); 
                    } 
                    mdbcnn.Close(); 
      

  6.   

    楼上正解,你写了一串insert string,没有用到啊
      

  7.   

    楼上正解,你build一个insert string,但是没有用到啊
      

  8.   


      if (myCommand.ExecuteNonQuery() > 0) 
                    { 
                        MessageBox.Show("添加成功!"); 
                    } 
    中的myCommand.ExecuteNonQuery() 不是执行了吗?看清代码再说吧!
      

  9.   

    直接try catch估计就不用浪费分发贴了
      

  10.   

    try
    {
    mdbcnn.Open(); 
    OleDbCommand myCommand = new OleDbCommand(mysql , mdbcnn); 
    myCommand.ExecuteNonQuery();
    mdbcnn.Close();
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.ToString);
    }
      

  11.   

     insert 没有执行啊,  
      

  12.   

    代码好象没有问题,
    如果你是通过页面上(非直接查看数据库)判断有没有插入成功,那就应该是因为select执行在Insert之前,你将OleDbCommand mdbcmd = new OleDbCommand(@"select * FROM tbStory", mdbcnn); 
    在Insert之后执行试试
      

  13.   

    同意要执行插入语句myCommand.ExecuteReader();