这个是一个插入按钮的CS代码,但是运行之后提示INSERT INTO 语句的语法错误。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。源错误: 
行 73:             cmd.Parameters.Add("@date", OleDbType.Date).Value = System.DateTime.Now;
行 74:             cmd.Parameters.Add("@username", OleDbType.VarChar).Value = loginuser1.Text.Trim();
行 75:             cmd.ExecuteNonQuery();
     protected void rbtn1_Click(object sender, EventArgs e)
    {
        OleDbConnection constr = new OleDbConnection(ConfigurationManager.AppSettings["OleDbConnectionString"] + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["AccessDbPath"].Trim()));
        constr.Open();
            OleDbCommand cmd = new OleDbCommand("insert into resource(resname,cname,scname,scid,resdescribe,reslink,date,username) values (@resname,@cname,@scname,@scid,@resdescribe,@reslink,@date,@username)", constr);
            string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
            cmd.Parameters.Add("@resname", OleDbType.VarChar).Value = resname.Text.Trim();
            cmd.Parameters.Add("@cname", OleDbType.VarChar).Value = DropDownList1.SelectedItem.Text.Trim();
            cmd.Parameters.Add("@scname", OleDbType.VarChar).Value = DropDownList2.SelectedItem.Text.Trim();
            cmd.Parameters.Add("@scid", OleDbType.Integer).Value = int.Parse(this.DropDownList2.SelectedItem.Value.Trim());
            cmd.Parameters.Add("@resdescribe", OleDbType.VarChar).Value = resdescribe.Text.Trim();            cmd.Parameters.Add("@reslink", OleDbType.VarChar).Value = fileExtension.ToString();
            cmd.Parameters.Add("@date", OleDbType.Date).Value = System.DateTime.Now;
            cmd.Parameters.Add("@username", OleDbType.VarChar).Value = loginuser1.Text.Trim();
            cmd.ExecuteNonQuery();
            rbtn2_Click(sender, e);
            Response.Write("<script>alert('添加成功!');</script>");
        
        constr.Close();
        
    }

解决方案 »

  1.   

     cmd = new OleDbCommand("insert into resource(resname,cname,scname,scid,resdescribe,reslink,date,username) values (@resname,@cname,@scname,@scid,@resdescribe,@reslink,@date,@username)", constr);
    这句格式应该不对,我不知道你参照的是什么,我一般如下写
      cmd=new OleDbCommand( "insert into info(name,age,sex,ClassName,tel,address)values('" + username + "','" + userage + "','" + usersex + "','" + userclass + "','" + usertel + "','" + useradr + "'))";也就是说字符串变量需要添加引号,这是经验哦。
      

  2.   

      protected void rbtn1_Click(object sender, EventArgs e)
        {
            OleDbConnection constr = new OleDbConnection(ConfigurationManager.AppSettings["OleDbConnectionString"] + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["AccessDbPath"].Trim()));
            constr.Open();
                string strSQL = "insert into resource(resname,cname,scname,scid,resdescribe,reslink,date,username) values (@resname,@cname,@scname,@scid,@resdescribe,@reslink,@date,@username)";
                OleDbCommand cmd = new OleDbCommand(strSQL, constr);

                string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
                cmd.Parameters.Add("@resname", OleDbType.VarChar).Value = resname.Text.Trim();
                cmd.Parameters.Add("@cname", OleDbType.VarChar).Value = DropDownList1.SelectedItem.Text.Trim();
                cmd.Parameters.Add("@scname", OleDbType.VarChar).Value = DropDownList2.SelectedItem.Text.Trim();
                cmd.Parameters.Add("@scid", OleDbType.Integer).Value = int.Parse(this.DropDownList2.SelectedItem.Value.Trim());
                cmd.Parameters.Add("@resdescribe", OleDbType.VarChar).Value = resdescribe.Text.Trim();        
                cmd.Parameters.Add("@reslink", OleDbType.VarChar).Value = fileExtension.ToString();
                cmd.Parameters.Add("@date", OleDbType.Date).Value = System.DateTime.Now;
                cmd.Parameters.Add("@username", OleDbType.VarChar).Value = loginuser1.Text.Trim();
                //在这里输出SQL语句看看
                 Response.Write(strSQL);
                //cmd.ExecuteNonQuery(); //屏蔽掉暂时不使用

                rbtn2_Click(sender, e);
                 
                Response.Write("<script>alert('添加成功!');</script>");
            
            constr.Close();
            
        }红色部分修改,然后输出看看你的这个SQL语句具体是什么,然后根据错误再调整
      

  3.   

      OleDbCommand cmd = new OleDbCommand("insert into resource(resname,cname,scname,scid,resdescribe,reslink,date,username) values (@resname,@cname,@scname,@scid,@resdescribe,@reslink,@date,@username)", constr);
                string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
                cmd.Parameters.Add("@resname", OleDbType.VarChar).Value = resname.Text.Trim();
                cmd.Parameters.Add("@cname", OleDbType.VarChar).Value = DropDownList1.SelectedItem.Text.Trim();
                cmd.Parameters.Add("@scname", OleDbType.VarChar).Value = DropDownList2.SelectedItem.Text.Trim();
                cmd.Parameters.Add("@scid", OleDbType.Integer).Value = int.Parse(this.DropDownList2.SelectedItem.Value.Trim());
                cmd.Parameters.Add("@resdescribe", OleDbType.VarChar).Value = resdescribe.Text.Trim();            cmd.Parameters.Add("@reslink", OleDbType.VarChar).Value = fileExtension.ToString();
                cmd.Parameters.Add("@date", OleDbType.Date).Value = System.DateTime.Now;
                cmd.Parameters.Add("@username", OleDbType.VarChar).Value = loginuser1.Text.Trim();
                cmd.ExecuteNonQuery();
    楼主,你那个,@reslink,后面没有传值进去啊
    你在insert语句里有这个,@reslink,后面cmd.Parameters.Add的时候没有。