这段代码写入不了。提示“MySql.ExecuteNonQuery();”错误,我检查过了,句子输入对的。不知道错在哪里?
       
   private void button1_Click(object sender, EventArgs e)
        {
            string reportPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
            reportPath += @"\Date.mdb";
            string ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" + reportPath;
            //string strSQL = "INSERT INTO user (names,pwd) VALUES('" + textBox1.Text + " ',' " + textBox2.Text + "')";
            //创建Connection 对象
            OleDbConnection con = new OleDbConnection(ConStr);
            //创建Command对象
            OleDbCommand MySql = new OleDbCommand("INSERT INTO user(names,pwd) values ('"+ textBox1.Text + "','" + textBox2.Text + "')", con);            
                con.Open();
                MySql.ExecuteNonQuery();
                con.Close();
            }还有请问如何按行(mdb)导入LIST。先行谢谢各位有心人士了。accessc#mdb数据库mdb写入

解决方案 »

  1.   

    既然你确定sql语句对的,就加个断点看看conn有没有打开成功。另外,抛出的异常时什么?按行导入的这个,你可以用dataReader,代码看起来是这个样子的DataReader dr  = selectCmd.ExecuteReader;
    While (dr.read())
    {
    //在这里加入,使用dr[0],dr[1].. dr[n]来读取一行的每一个元素
    add...
    }
      

  2.   

    不会是连接字符串的问题,应该是sql语句的问题,改成:
    OleDbCommand MySql = new OleDbCommand("INSERT INTO [user](names,pwd) values ('"+ textBox1.Text + "','" + textBox2.Text + "')", con);   
      

  3.   

    应该是user的问题,user是access的保留字,用作表名的时候,应该用中括号括起来,
      

  4.   

    什么Exception信息?里面应该有提示吧。
      

  5.   

    你的好多同学,包括你在内,都不会使用debug工具吗?先设个断点,捕捉住异常,然后看异常里的具体内容是什么。到底是SQL语句本身有问题,还是数据库连接问题,还是其他什么问题。先学会问问题,再来问问题。
      

  6.   

    字段用了关键字,要用[]起来,另外access的部分sql写法与ms sql略有不同