语法分析出错 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 语法分析出错源错误: 
行 91:  try
行 92:  {
行 93:  cm.ExecuteNonQuery();
行 94:  Lbl_note2.Text=" 选课成功!";
行 95:  }
 源文件: c:\DZY\xuanke1.aspx.cs    行: 93 堆栈跟踪: 
[OleDbException (0x80040e14): 语法分析出错]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +177
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +194
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +56
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +105
   System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +88
   Student_Class.xuanke1.Btn_yes_Click(Object sender, EventArgs e) in c:\DZY\xuanke1.aspx.cs:93
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +75
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +97
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4882 代码:
            string strconn = ConfigurationSettings.AppSettings["dsn"];
            OleDbConnection cn = new OleDbConnection(strconn);
            cn.ConnectionString = "Provider=DMOLEDB.1; Data Source=LOCALHOST; Initial Catalog=S_CLASS; User ID=U1; Password=a123456; ";
            cn.Open();
            strsql = "insert into S_CLASS.CLASS.student_course(Student_id,Course_id)values@Student_id,@Course_id)"; 
            OleDbCommand cm = new OleDbCommand(strsql, cn);
            cm.Parameters.Add(new OleDbParameter("@Student_id", OleDbType.VarChar, 200));
            cm.Parameters.Add(new OleDbParameter("@Course_id", OleDbType.VarChar, 200));

cm.Parameters["@Student_id"].Value=Session["User_id"].ToString();
cm.Parameters["@Course_id"].Value=Tbx_courseid.Text;


try
{
cm.ExecuteNonQuery();
Lbl_note2.Text=" 选课成功!";
}
catch(SqlException)
{
Lbl_note.Text="添加失败!";
}
            
cn.Close();

解决方案 »

  1.   

    strsql = "insert into S_CLASS.CLASS.student_course(Student_id,Course_id)values@Student_id,@Course_id)";  =>strsql = "insert into S_CLASS.CLASS.student_course(Student_id,Course_id)values(@Student_id,@Course_id)";  
      

  2.   

    values@Student_id=>values(@Student_id
      

  3.   

    可能贴上来有点问题我有括号的
    string strconn = ConfigurationSettings.AppSettings["dsn"];
                OleDbConnection cn = new OleDbConnection(strconn);
                cn.ConnectionString = "Provider=DMOLEDB.1; Data Source=LOCALHOST; Initial Catalog=S_CLASS; User ID=U1; Password=a123456; ";
                cn.Open();
                strsql = "insert into S_CLASS.CLASS.student_course(Student_id,Course_id) values(@Student_id,@Course_id)";
                OleDbCommand cm = new OleDbCommand(strsql, cn);
                cm.Parameters.Add(new OleDbParameter("@Student_id", OleDbType.VarChar, 200));
                cm.Parameters.Add(new OleDbParameter("@Course_id", OleDbType.VarChar, 200));

    cm.Parameters["@Student_id"].Value=Session["User_id"].ToString();
    cm.Parameters["@Course_id"].Value=Tbx_courseid.Text;


    try
    {
    cm.ExecuteNonQuery();
    Lbl_note2.Text=" 选课成功!";
    }
    catch(SqlException)
    {
    Lbl_note.Text="添加失败!";
    }
                
    cn.Close();
      

  4.   

    各位高手请看4楼代码不好意思阿我只学过sql server现在连的是达梦数据库 应该是insert语句语法有问题 帮我看看 谢谢各位了
      

  5.   

    insert into S_CLASS.CLASS.student_course(Student_id,Course_id) values(@Student_id,@Course_id)替换相关的值,然后在数据库中执行一下
      

  6.   

    怎么说呢 我是前台登入Student_id进行Course_id的选择 后台根据Student_id和Course_id来传值 不是单纯的添加数据 所以在sql里用的是 @Student_id,@Course_id添加