protected void Button1_Click(object sender, EventArgs e)
    {
        string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
        strConnection += @"Data Source=G:\WebSite2\App_Data\db1.mdb";
        OleDbConnection con = new OleDbConnection(strConnection);
        con.Open();
        string add="insert into data(title,date)values('"+TextBox1.Text+"','"+DateTime.Now+"')";
        OleDbCommand cmd = new OleDbCommand(add,con);
        cmd.ExecuteNonQuery();
        con.Close();
    }
    怎么老提示  INSERT INTO 语句的语法错误。 
  哪位教师解释下啊  急啊~~~~~  小弟分不多,还请谅解~~~

解决方案 »

  1.   

    改成 string add="insert into data(title,date) values('"+TextBox1.Text+"','"+DateTime.Now+"')";看看,可能是空格问题 
      

  2.   

    data是不是关键字换个表名,字段名试试或者[data]SQLSERVER这样写不知道access是不是这样
      

  3.   

    DateTime.Now.ToString("t")我估计是datetime的问题,试试前面那个。
      

  4.   

    string add="insert into data (title,date) values('"+TextBox1.Text+"','"+DateTime.Now.ToString("t")+"')";这句你再试下。
      

  5.   

    明显的关键字的问题
    data (title,date)
    你用复杂的试试
    m_data (m_title, m_date)
      

  6.   

    string add="insert into [data] (title,date) values('"+TextBox1.Text+"',#"+DateTime.Now.ToString("t")+"#)";
      

  7.   

    难道你不用担心 TextBox1.Text 中包含单引号吗?我会敲你一下,这可不是什么技术问题,说的委婉一点,是一种做事时“毫不谨慎地再看一眼”的问题。
      

  8.   

    如果用户在 TextBox1.Text 中包含单引号,你应该保证数据库中正常保存。如果业务逻辑中不允许输入单引号,你就应该在前边先检测时候含有单引号并在客户端名明确地给出异常提示信息。
      

  9.   

    同楼上,这种问题根本不应该用拼接字符串的方法来解决      protected void Button1_Click(object sender, EventArgs e) 
        { 
            string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;"; 
            strConnection += @"Data Source=G:\WebSite2\App_Data\db1.mdb"; 
            OleDbConnection con = new OleDbConnection(strConnection); 
            string add="insert into [data]([title],[date])values(@title, @date)"; 
            OleDbCommand cmd = new OleDbCommand(add,con); 
            cmd.Parameters.AddWithValue("@title", TextBox1.Text);
            cmd.Parameters.AddWithValue("@date", DateTime.Now);
            con.Open(); 
            cmd.ExecuteNonQuery(); 
            con.Close(); 
        } 
      

  10.   

    (1)data 做为 表名,字段名 就要写成[data]
    (2) 典型的SQL注入漏洞的典范, 见10楼.