我是新手,问题代码如下:
        private void button1_Click(object sender, EventArgs e)
        {
                string connstr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\z\Desktop\date1.mdb";                OleDbConnection conn = new OleDbConnection(connstr);
                conn.Open();
                OleDbCommand command = conn.CreateCommand();
                command.CommandText = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";
                command.ExecuteNonQuery();
                conn.Close();
        }  编译没问题,运行的时候说我的ExecuteNonQuery();存在语法错误,跪求高人指点。

解决方案 »

  1.   

    '" + textBox3.Text + "'改成" + textBox3.Text + "数字类型不要单引号。在csdn混    提高点结贴率嘛
      

  2.   


    private void button1_Click(object sender, EventArgs e)
      {
      string connstr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\z\Desktop\date1.mdb";  OleDbConnection conn = new OleDbConnection(connstr);
      conn.Open();
      string strSQL =  "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";
      Response.Write(strSQL); //输出SQL语句,然后拿到SQL 查询分析器中执行一下看看,或是你贴出输出内容来看看
      OleDbCommand command = new OleDbCommand(strSQL,conn);
      command.ExecuteNonQuery();
      conn.Close();
      }   
      

  3.   

    问题问错了。。应该是ado.net的ExecuteNonQuery()呵呵!!!
      

  4.   

    断点打在这句代码上。string strSQL =  "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + 然后获取strSQL的值,复制到SQL Server Management Studio中运行,肯定有错……
      

  5.   

    把insert语句复制下来去sql查询分析器中测试下,是否ok。如果ok,那么就是语句有问题了。倒是貌似语句没有问题。可能是insert时,和数据库中的字段不对应吧。
      

  6.   

    你这个列名不用中文的可以不。。
    OleDbCommand.Connection设置了么?OleDbCommand.Connection=conn;
      

  7.   

    你将页面中输出的SQL语句贴出来,大家看看。你拿到查询分析器中执行了嘛?报什么错??
      

  8.   


    不用加了,你connection的构造函数里面已经写了。。OleDbConnection conn = new OleDbConnection(connstr);
      

  9.   

    都说了,先调试一下,当你执行到string strSQL = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + 
    这句代码的下一句时,将鼠标移到strSQL上就能获取strSQL的值了(或者鼠标移到strSQL上,右键,添加监视也行),再到sql查询分析器中执行一遍代码,看看执行是否成功
      

  10.   


    是执行一遍获取到的strSQL值
      

  11.   

    access  数字不能加引号
      

  12.   


    数字都不加引号的哦哦。忘记了,你用的access数据库不过你那个insert语句放到ms sql server查询分析器中也可以看看有没有语法错误。。
      

  13.   


    建议先用ms sql server数据库,简单、方便、易操作……
      

  14.   


    我打了断点了
    这是strSQL的值
    insert into 表1(姓名,学号,数学,语文,英语,总分) values('周','2010101146','100','100','100','300')
      

  15.   


    你确定你的“姓名,学号,数学,语文,英语,总分”这些字段在数据库里面都是字符串类型的???那么你看看“values('周','2010101146','100','100','100','300')”这里面的单引号和逗号是不是都是“英文”(半角)的
      

  16.   


    运行结果是command.ExecuteNonQuery();有语法错误
      

  17.   

    累了。。这里面有个例子。用到了access数据库你下载看看吧http://download.csdn.net/source/3407167
      

  18.   

    +1
    问题出在SQL语句
    表名,列名不要用中文,符号用英文打.
    自已调试下
      

  19.   

    private void button1_Click(object sender, EventArgs e)
      {
      string connstr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\z\Desktop\date1.mdb";  OleDbConnection conn = new OleDbConnection(connstr);
      conn.Open();
      string strSQL =  "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";
        OleDbCommand command = new OleDbCommand(strSQL,conn);
      command.ExecuteNonQuery();
      conn.Close();
      }   
       字段最好不要用中文
      

  20.   


    这位哥我想问下,突然想起来,我没装SQL,这会不会是导致我错误的原因
      

  21.   

    应该没事。你用的是access数据库。
      

  22.   


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.OleDb;
    using System.Data;public partial class _Default : System.Web.UI.Page 
    {
        //将cofcms.mdb放到程序的跟路劲下
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath("cofcms.mdb");
        string strSQL;//sql与语句
        protected void Page_Load(object sender, EventArgs e)
        {
            using (OleDbConnection conn = new OleDbConnection(connectionString)) 
            {
                using (OleDbCommand cmd = new OleDbCommand()) 
                {
                    strSQL = "insert into contents values(4,'测试',7,'新闻内容',1)";//注意这行是写死的,自己可以对照着修改一下。(词条语句只能执行一遍,因为此表中有约束)
                    cmd.Connection = conn;
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = strSQL;
                    conn.Open();
                    int result = cmd.ExecuteNonQuery();//执行                if (result == 1)
                    {
                        Response.Write("添加成功!");
                    }
                    else 
                    {
                        Response.Write("失败!");
                    }
                }
            }
        }
    }
    先用你下载的按个数据库。什么防注入啊、代码规范啊……先不管它了先让程序运行起来再说!好运!
      

  23.   


    没解决,我试着用SQL做了
      

  24.   

    qingYun1029
    (青云-北京CFO)向如此热心的人致敬~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      

  25.   


    string strSQL = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";改成string strSQL = string.Format("insert into 表1(姓名,学号,数学,语文,英语,总分) values ('{0}','{1}','{2}','{3}','{4}','{5}')", textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text);
     试试