还是FROM 子句语法错误,在线等……

kmustlx 2007-08-17 01:39:49
用ASP连接ACCESS数据库时,出现了from字句语法错误,看来好多帖子都没找到解决的方法,请各位前辈指点下。
和他们不同的是,我用的连接串没有用到关键字,而是采用了定义的字符串作为表名,总是编译不过去,我的连接串如下:
Conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("test.mdb"));
Conn.Open();
SQL="select * from "+Lesson;
Comm=new OleDbCommand(SQL,Conn);
dr=Comm.ExecuteReader();
其中Lesson是string类型的变量,为什么会出现from错误呢!
...全文
357 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hudenq 2011-09-24
  • 打赏
  • 举报
回复
if (Lesson !="" )
{
SQL= "select * from "+Lesson+"";
}
注意from 这里要加个空格 "+Lesson+"之间一定要加个空格;
暖枫无敌 2011-09-24
  • 打赏
  • 举报
回复
SQL= "select * from "+Lesson;

=============》

SQL= "select * from '"+Lesson+"'";
GodDices 2011-09-24
  • 打赏
  • 举报
回复
问题就在Lession...
看看你的表名对不对。。
看看LEssion是否为null
看看你的菊花有没有洗干净。。屁股干净了再上来发帖。。。
zhoulinli915 2011-09-24
  • 打赏
  • 举报
回复
关注中,呵呵,我也遇见这事,换表就不错。纠结
kmustlx 2007-08-17
  • 打赏
  • 举报
回复
这里的Lesson是从前面的登录信息里取出来的值,但是前面的登录部分我已经通过编译了,在进入这一部分的时候也是弹出form字句的问题,所以我才转过来看这边的程序。
刚才我也进行过一次编译,把Lesson赋一个具体的值后,编译是对的,可能你说的也有道理吧,我在看看从前面过来怎么样。
firsk 2007-08-17
  • 打赏
  • 举报
回复
Lesson=Request["Lesson"];

你这里的Request["Lesson"];我诂计就没拿到值,当然错了


kmustlx 2007-08-17
  • 打赏
  • 举报
回复
这是整个程序的绝大多数代码,我也是按书上来的,但是出现了上面的问题,我检查了也找不出为什么,麻烦帮忙看下,程序都很简单,就是一个用来进行网上测试的小程序,但是还是出问题了~~~~
string Lesson;
string No;
string Name;
OleDbDataReader dr;
string SQL;
OleDbCommand Comm;
OleDbConnection Conn;

void Page_Load(Object Src,EventArgs e){
Lesson=Request["Lesson"];
No=Request["No"];
Name=Request["Name"];
Conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("test.mdb"));
Conn.Open();
SQL="select * from "+Lesson;
Comm=new OleDbCommand(SQL,Conn);
dr=Comm.ExecuteReader();
}

string TestResult(string inputScore){
int Score=Convert.ToInt32(inputScore);
if(-1==Score){
return "你还没有考试";
}
else if(Score<60){
return "<FONT Color=Red>"+Score+"</FONT>";
}
else{
return Score.ToString();
}
}

</script>
<HTML>
<BODY BGCOLOR=BEIGE>
<H2>成绩单<HR></H2>
<%
int Score=0;
while(dr.Read()) {
if(Request["No"+dr["题号"].ToString()]!=null)
{
string Sel=Request["No"+dr["题号"].ToString()];
string Ans=dr["解答"].ToString();
if(Ans==Sel)
{
Score=Score+Convert.ToInt32(dr["分数"].ToString());
}
}
}

Conn.Close();
Conn.Open();
SQL="Select * from 成绩单";
SQL=SQL+"Where 学号="+"'"+No+"'"+"And 姓名='"+Name+"'";
Comm=new OleDbCommand(SQL,Conn);
OleDbDataReader drScore=Comm.ExecuteReader();
if(drScore.Read()){
if(drScore[Lesson].ToString()=="-1"){
SQL="update 成绩单 set"+Lesson+"="+Score.ToString()
+"where 学号="+"'"+No+"'"+"And 姓名='"+Name+"'";
Conn.Close();
Conn.Open();
Comm=new OleDbCommand(SQL,Conn);
Comm.ExecuteNonQuery();

}
else
{
Response.Write("<script>{alert('你已经考过了')}</Script>");
}
}
%>
<%=Name%>同学你好,你的考试成绩统计为:<BR>
<CENTER>
<TABLE BORDER=2 BGCOLOR="#F1F1F1" WIDTH=80%>
<TR BGCOLOR="#DDDDDD"><TD>你参加的科目</TD><TD>你的分数</TD></TR>
<%
Conn.Close();
Conn.Open();
SQL="select * from 成绩单";
SQL=SQL+"where 学号="+"'"+No+"'"+"And 姓名='"+Name+"'";
Comm=new OleDbCommand(SQL,Conn);
drScore=Comm.ExecuteReader();
if(drScore.Read()){
%>
<TR><TD>ASP</TD><TD
Align=Right><%=TestResult(drScore["ASP"].ToString())%></TD></TR>
<TR><TD>XML</TD><TD
Align=Right><%=TestResult(drScore["ASP"].ToString())%></TD></TR>
<% } %>
</TABLE></center>
<HR>
kmustlx 2007-08-17
  • 打赏
  • 举报
回复
以下是编译错误信息:说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: FROM 子句语法错误。

源错误:


行 20: SQL="select * from "+Lesson;
行 21: Comm=new OleDbCommand(SQL,Conn);
行 22: dr=Comm.ExecuteReader();
行 23: }
行 24:

源文件: c:\inetpub\wwwroot\score.aspx 行: 22
我觉得就是采用了字符串来表示表名它才出的这个错误,如果直接引用表的名字不用字符串来表示是可以通过的,只是想知道用string定义的从外部读入的数据做表名怎么才能通过编译?
firsk 2007-08-17
  • 打赏
  • 举报
回复
SQL="select * from "+Lesson;
response.write(sql)
return;
Comm=new OleDbCommand(SQL,Conn);
dr=Comm.ExecuteReader();

然后把打印出来的sql语句发上来

这样不知道你后面是怎么写的
kmustlx 2007-08-17
  • 打赏
  • 举报
回复
晕,还没人关顾啊,拜托了,各位高手~~~~~~

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧