string strconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("database.mdb");
string strsql="insert into kaoqin values('"+strId+"','"+strToday+"','"+strTime+"','0','"+strReason+"','"+strYear+"','"+strMon+"')";
OleDbConnection conn = new OleDbConnection(strconn);
conn.Open();
OleDbCommand cmd=new OleDbCommand(strsql,conn);
cmd.ExecuteNonQuery();
conn.Close();
这样能执行
string strconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("database.mdb");
string strsql="insert into kaoqin(userid,kqdate,class_begin,class_end,reason,year,month) values ('"+strId+"','"+strToday+"','"+strTime+"','0','"+strReason+"','"+strYear+"','"+strMon+"')";
OleDbConnection conn = new OleDbConnection(strconn);
conn.Open();
OleDbCommand cmd=new OleDbCommand(strsql,conn);
cmd.ExecuteNonQuery();
conn.Close();
这样就不能执行
我的ACCESS数据库字段是id,userid,kqdate,class_begin,class_end,reason,year,month   id是主关键字段 自动编号 类型是int,其他字段都为文本类型,  
帮忙仔细看看

解决方案 »

  1.   

    string strsql="insert into kaoqin values('"+strId+"','"+strToday+"','"+strTime+"','0','"+strReason+"','"+strYear+"','"+strMon+"')";
    这条语句错误.缺少字段名.
      

  2.   

    int型為什麼要加單引號?string strsql="insert into kaoqin(userid,kqdate,class_begin,class_end,reason,year,month) values ("+strId+",'"+strToday+"','"+strTime+"','0','"+strReason+"','"+strYear+"','"+strMon+"')";
    如果出現亂碼請在nvarchar前加N''
      

  3.   

    你的代码太难读,为什么不用参数化的SQL语句
    cmd.CommandText = "INSERT INTO T ( ID, UserName ) VALUES ( ?, ? )";然后为cmd加参数,这样不会出现类型不对的情况
    cmd.Parameter.Add("ID", OleDbType.Interger).Value = 2;
    cmd.Parameter.Add("UserName", OleDbType.VarWChar).Value = "yecong";这样好读,不用为引号之类的东东花时间