日期:2014-05-19  浏览次数:20944 次

请教数据库语句
第一个问题:
   行37出错
  异常详细信息:   System.Data.OleDb.OleDbException:   FROM   子句语法错误。

源错误:  


行   35:   DataTableCollection   c1=d1.Tables;
行   36:   DataTable   table=new   DataTable( "客观题 ");
行   37:   a1.Fill(table);
行   38:   c1.Add(table);
行   39:   DataGrid1.DataSource=d1.Tables[0];
 
代码如下:private   void   Page_Load(object   sender,   System.EventArgs   e)
{
string   strconn= "ProvideR=Microsoft.Jet.OleDb.4.0; "+@ "data   source= "+Server.MapPath( "../../jingping.mdb ");
OleDbConnection   conn=new   OleDbConnection(strconn);
conn.Open();
string   sql= "select   题目,章节名   from   客观题,自测章节 where   客观题.chapid   =   自测章节.chapid ";
OleDbCommand   comm=new   OleDbCommand(sql,conn);
comm.CommandType=CommandType.Text;
conn.Close();

OleDbDataAdapter   a1=new   OleDbDataAdapter();
DataSet   d1=new   DataSet();
a1.SelectCommand=comm;
DataTableCollection   c1=d1.Tables;
DataTable   table=new   DataTable( "客观题 ");
a1.Fill(table);
c1.Add(table);
DataGrid1.DataSource=d1.Tables[0];
DataGrid1.DataBind();
}
可是我看不出这句话有什么错误。
第二个问题:
    行85出错:异常详细信息:   System.Data.OleDb.OleDbException:   操作必须使用一个可更新的查询

源错误:  


行   83:   OleDbCommand   comm1=new   OleDbCommand(sql,conn1);
行   84:   comm1.CommandType=CommandType.Text;
行   85:   comm1.ExecuteNonQuery();
行   86:   conn1.Close();
行   87:   Response.Write( "ok ");
 
代码如下:
 string   tixing1=tixing.SelectedValue;
string   timu1=timu.Text.Trim();
string   ans01=ans1.Text.Trim();
string   ans02=ans2.Text.Trim();
string   ans03=ans3.Text.Trim();
string   ans04=ans4.Text.Trim();
                                string   keans1=keans.SelectedValue;
                              //   string   zhuans1=zhuans.Text.Trim();
string   charp1=charp.SelectedValue;

if(tixing1== "客观题 ")
{
                                    string   str= "Provider=Microsoft.Jet.OleDb.4.0; "+@ "Data   Source= "+Server.MapPath( "../../jingping.mdb ");
OleDbConnection   conn1=new   OleDbConnection(str);
conn1.Open();
string   sql= "insert   into   keguanti(timu,ans1,ans2,ans3,ans4)   values( ' "+timu1+ " ', ' "+ans01+ " ', ' "+ans02+ " ', ' "+ans03+ " ', ' "+ans04+ " ') ";
OleDbCommand   comm1=new   OleDbCommand(sql,conn1);
comm1.CommandType=CommandType.Text;
comm1.ExecuteNonQuery();
conn1.Close();
Response.Write( "ok ");
}
else  
{
                                        Response.Write(tixing1);
}
弄了很久都没弄好,请高手指点一下。