为什么INSERT INTO 语句的语法错误?

xiamin 2003-08-23 06:32:32
ACCESS2000库test.mdb的student表(name,number),C#往库中插入一条记录,为什么INSERT INTO 语句的语法错误?
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="C#" runat="server">
private void btnOK_Click(object sender, System.EventArgs e)
{
OleDbConnection cn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("test.mdb"));
//string strSQL="insert into student(name,number) values("+TextBox1.Text+",'"+TextBox2.Text+"')";
string strSQL="insert into student(name,number) values('"+TextBox1.Text+"','"+TextBox2.Text+"')";

OleDbCommand cm=new OleDbCommand(strSQL,cn);
cn.Open();
Response.Write(strSQL);
try
{
cm.ExecuteReader();
Label1.Text="添加成功!";
}
catch(Exception ee)
{
Label1.Text="添加失败!错误信息:"+ee.ToString();
}
cn.Close();
}
</script>
<html>
<body>
<form runat="server" >
姓名:<asp:textbox id="TextBox1" runat="server" />
<BR>
学号:<asp:textbox id="TextBox2" runat="server" />
<asp:label id="Label1" runat="server" />
<BR>
<asp:button text="确定" onclick="btnOK_Click" runat="server" />
</form>
</body>
</html>
添加失败!错误信息:System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。 at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteReader() at ASP.insert2_ASPX.btnOK_Click(Object sender, EventArgs e)
...全文
118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmsoft 2003-08-23
  • 打赏
  • 举报
回复
谁说
SQL SERVER,ACCESS对数值型的数据,加‘’插入记录是不会出错的


如果你当前字段(数值类型的)允许为空的话
''与null不个不同的概念
panyee 2003-08-23
  • 打赏
  • 举报
回复
string strSQL="insert into student(name,[number]) values
('"+TextBox1.Text+"','"+TextBox2.Text+"')";


number是关键字,字段名加[]
sgsh51 2003-08-23
  • 打赏
  • 举报
回复
问题值可能出在两个地方:
1. 连接字符串问题,
2. SQL语句问题,正如cmsoft(韦小宝是我的老乡.net) 所说的,Name,Number这两个字段类型和TextBox1.Text的类型不匹配
wd_318 2003-08-23
  • 打赏
  • 举报
回复
SQL SERVER,ACCESS对数值型的数据,加‘’插入记录是不会出错的
prczf 2003-08-23
  • 打赏
  • 举报
回复
string strSQL="insert into student(name,number) values('"+TextBox1.Text+"',"+TextBox2.Text+")";
这样就行了。
cmsoft 2003-08-23
  • 打赏
  • 举报
回复
我看是SQL语句有错

string strSQL="insert into student(name,number) values('"+TextBox1.Text+"','"+TextBox2.Text+"')";

number是什么类型?
如果是int之类的数值型就
string strSQL="insert into student(name,number) values('"+TextBox1.Text+"',"+Int.Parse(TextBox2.Text)+")";
wd_318 2003-08-23
  • 打赏
  • 举报
回复
来晚了
panyee 2003-08-23
  • 打赏
  • 举报
回复
cm.ExecuteReader();
改成
cm.ExecuteNonQuery();

62,025

社区成员

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

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

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

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