void Button1_Click(object sender, EventArgs e) {
        string connectionString;
        string queryString;
        connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " +
             "Ole DB Services=-4; " +
             "Data Source=C:\\Nettest\\dg1.mdb";        queryString = "Insert into StuInfo(EId,Name)  values('"+TxtId.Text.Trim()+"','"+TxtName.Text.Trim()+"')";
        //queryString = "Insert into StuInfo(EId,Name) values('2005010101','aaa')";
        OleDbConnection dbConnection = new OleDbConnection(connectionString);
        dbConnection.Open();
        OleDbCommand cmd = new OleDbCommand(queryString,dbConnection);
        OleDbDataReader dr = cmd.ExecuteReader();
      try
      {      Session["ID"]=TxtId.Text.Trim();      //dbConnection.Open();
      //cmd.ExecuteReader();
      //dbConnection.ExecuteNonQuery();
      Response.Redirect("test.aspx");
      }
      catch(Exception)
      {
       //Response.Write("<script language=\"javascript\">"+"\n");
       Response.Write("不能重复");      }

解决方案 »

  1.   

    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------INSERT INTO 语句的语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。源错误: 生成此未处理异常的源代码只能在调试模式中进行编译时显示。若要启用该功能,请执行以下步骤之一,然后请求 URL:1. 在生成错误的文件的顶部添加一个“Debug=true”指令。示例:  <%@ Page Language="C#" Debug="true" %>或者:2. 将以下节添加到应用程序的配置文件中:<configuration>
       <system.web>
           <compilation debug="true"/>
       </system.web>
    </configuration>请注意,第二种方法将使给定应用程序中的所有文件在调试模式下进行编译。第一种方法只使特定文件在调试模式下进行编译。重要事项:以调试模式运行应用程序肯定会引起内存/性能系统开销。在部署到产品方案中之前,应该确保应用程序已禁用调试。  堆栈跟踪: 
    [OleDbException (0x80040e14): INSERT INTO 语句的语法错误。]
       System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
       System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +122
       System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
       System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
       System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
       System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +69
       System.Data.OleDb.OleDbCommand.ExecuteReader() +7
       ASP.login_aspx.Button1_Click(Object sender, EventArgs e) +255
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +83
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
       System.Web.UI.Page.ProcessRequestMain() +1292 
      

  2.   

    你的SQL语句语法没有错,可能情况是:
    1、 你的StuInfo(EId,Name)中字段名Name 与SQL里面是name 函数冲突
        导致SQL检查错误。 解决办法 改字段名 然后再试
    2、 可能你的TxtId.Text.Trim()和TxtName.Text.Trim()  获得的值包括了单引号 '
        而你没有对其处理 所以产生错误 
      

  3.   

    SQL保留关键字:
    action
    add
    aggregate
    all
    alter
    after
    and
    as
    asc
    avg
    avg_row_length
    auto_increment
    between
    bigint
    bit
    binary
    blob
    bool
    both
    by
    cascade
    case
    char
    character
    change
    check
    checksum
    column
    columns
    comment
    constraint
    create
    cross
    current_date
    current_time
    current_timestamp
    data
    database
    databases
    date
    datetime
    day
    day_hour
    day_minute
    day_second
    dayofmonth
    dayofweek
    dayofyear
    dec
    decimal
    default
    delayed
    delay_key_write
    delete
    desc
    describe
    distinct
    distinctrow
    double
    drop
    end
    else
    escape
    escaped
    enclosed
    enum
    explain
    exists
    fields
    file
    first
    float
    float4
    float8
    flush
    foreign
    from
    for
    full
    function
    global
    grant
    grants
    group
    having
    heap
    high_priority
    hour
    hour_minute
    hour_second
    hosts
    identified
    ignore
    in
    index
    infile
    inner
    insert
    insert_id
    int
    integer
    interval
    int1
    int2
    int3
    int4
    int8
    into
    if
    is
    isam
    join
    key
    keys
    kill
    last_insert_id
    leading
    left
    length
    like
    lines
    limit
    load
    local
    lock
    logs
    long
    longblob
    longtext
    low_priority
    max
    max_rows
    match
    mediumblob
    mediumtext
    mediumint
    middleint
    min_rows
    minute
    minute_second
    modify
    month
    monthname
    myisam
    natural
    numeric
    no
    not
    null
    on
    optimize
    option
    optionally
    or
    order
    outer
    outfile
    pack_keys
    partial
    password
    precision
    primary
    procedure
    process
    processlist
    privileges
    read
    real
    references
    reload
    regexp
    rename
    replace
    restrict
    returns
    revoke
    rlike
    row
    rows
    second
    select
    set
    show
    shutdown
    smallint
    soname
    sql_big_tables
    sql_big_selects
    sql_low_priority_updates
    sql_log_off
    sql_log_update
    sql_select_limit
    sql_small_result
    sql_big_result
    sql_warnings
    straight_join
    starting
    status
    string
    table
    tables
    temporary
    terminated
    text
    then
    time
    timestamp
    tinyblob
    tinytext
    tinyint
    trailing
    to
    type
    use
    using
    unique
    unlock
    unsigned
    update
    usage
    values
    varchar
    variables
    varying
    varbinary
    with
    write
    when
    where
    year
    year_month
    zerofill
      

  4.   

    queryString = "Insert into StuInfo(EId,Name)  values('"+TxtId.Text.Trim()+"','"+TxtName.Text.Trim()+"')";
    把这一句改为:
    queryString = "Insert into StuInfo(EId,Name) values(@id,@name)";
    然后在OleDbCommand cmd = new OleDbCommand(queryString,dbConnection);
    后面加上
    cmd.Parameters.add("@id",txtID.text.Trim());
    cmd.Parameters.add("@name",txtName.Text.Trim());
    这样科学一些,而且也容易看一些,不会被那些单双引号弄昏,试试看?