昨天弄了一晚上还没搞顶的sql语句,请求帮助

guolaizuozuo 2004-12-25 10:02:58
下面是我插入到access数据表的一个类
public string AddNew()
{
string sResult="";
string strSql="";
strSql="select * from UM_C_AdminUser where AdminUserName='"+sAdminUserName+"'";
OleDbCommand sqlCmd=new OleDbCommand(strSql,mConnetion);
OleDbDataReader sqlRs=sqlCmd.ExecuteReader();

if (sqlRs.HasRows)
{
sqlRs.Close();
sResult="此用户名已经存在!";
}
else
{
sqlRs.Close();
strSql="insert into UM_C_AdminUser(AdminUserName,Password,Name,Duty,Department,JoinCompanyTime,Email,Mobile,Telephone,Education,Resume,Status)"+
"Values('"+sAdminUserName+"','"+sPassword+"','"+sName+"','"+sDuty+"','"+sDepartment+"','"+sJoinCompanyTime+"','"+sEmail+"','"+sMobile+"','"+sTelephone+"','"+sEducation+"','"+sResume+"',"+iStatus+")";

sqlCmd=new OleDbCommand(strSql,mConnetion);
}
try
{
sqlCmd.ExecuteNonQuery();
}
catch(Exception e)
{
sResult= e.Message;
}
return sResult;
}

}

插入的时候老提示插入的语句有错误,我打印出strSql到sql server中没问题
为什么同样的sql语句插入到access就不行,我改如何改
...全文
160 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
guolaizuozuo 2004-12-25
  • 打赏
  • 举报
回复
添加成功了,Password是保留字改成[Password]

谢谢
snowcloud2002 2004-12-25
  • 打赏
  • 举报
回复
Password是保留字改成[Password]
要不会提示Insert Into语法错误的
guolaizuozuo 2004-12-25
  • 打赏
  • 举报
回复
我现在就插2个字段也出现错误了,谁知道这是什么原因
只有这2个字段不能为空
postfix2 2004-12-25
  • 打赏
  • 举报
回复
倒,这么长的SQL语句写个存储过程嘛,这样写不出问题就怪了
guolaizuozuo 2004-12-25
  • 打赏
  • 举报
回复
实在没办法
我换成
strSql="insert into UM_C_AdminUser(AdminUserName,Password)Values('"+sAdminUserName+"','"+sPassword+"')";
打印的结果是
insert into UM_C_AdminUser(AdminUserName,Password)Values('55555','55555')

抱错的结果是INSERT INTO 语句的语法错误。
guolaizuozuo 2004-12-25
  • 打赏
  • 举报
回复
数据的字段AdminUserName和Password必添,其余的都可以为空,都是文本
guolaizuozuo 2004-12-25
  • 打赏
  • 举报
回复
我打印出
INSERT INTO UM_C_AdminUser
(AdminUserName, Password, Name, Duty, Department, JoinCompanyTime, Email,
Mobile, Telephone, Education, Resume, Status)
VALUES ('wwwww', 'wwwww', 'wwww', 'w', 'w', '2004-2-2', 'w', 'w', 'w', '专科', 'w', 1)

在server2000中已经成功了在access中就出现语法错误
sdenli 2004-12-25
  • 打赏
  • 举报
回复
你在每个变量和“+”之间放一个空格,试试,我认为是这个问题
  • 打赏
  • 举报
回复
那你把这个sql语句放到access里插入试试,看access提示什么错误。
liuzxit 2004-12-25
  • 打赏
  • 举报
回复
insert into UM_C_AdminUser(AdminUserName,Password,Name,Duty,Department,JoinCompanyTime,Email,Mobile,Telephone,Education,Resume,Status)"+
的字段名加[]括上﹐起碼我發現name就是access的保留字了

insert into UM_C_AdminUser(AdminUserName,Password,[Name],Duty,Department,JoinCompanyTime,Email,Mobile,Telephone,Education,Resume,Status)"+
guolaizuozuo 2004-12-25
  • 打赏
  • 举报
回复
strSql="insert into UM_C_AdminUserAdminUserName,Password,Name,Duty,Department,JoinCompanyTime,Email,Mobile,Telephone,Education,Resume,Status)"+
在同一行
"Values('"+sAdminUserName+"','"+sPassword+"','"+sName+"','"+sDuty+"','"+sDepartment+"','"+sJoinCompanyTime+"','"+sEmail+"','"+sMobile+"','"+sTelephone+"','"+sEducation+"','"+sResume+"',"+iStatus+")";
在同一行.没有空格
而且打印出的语句在server 2000中都可以插入,为什么在access中就出现语法错误,弄了许久还是没弄出来
slhuang 2004-12-25
  • 打赏
  • 举报
回复
1。Values前留个空格。
2。这里去一下空格,可能库里已经有记录,只是有空格造成没查到。主键重复引起插入失败。
strSql="select * from UM_C_AdminUser where AdminUserName='"+sAdminUserName.Trim()+"'";
focusonline 2004-12-25
  • 打赏
  • 举报
回复
"Values ('"+sAdminUserName+"','"+sPassword+"','"+sName+"','"+sDuty+"','"+sDepartment+"
?空格

62,243

社区成员

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

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

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

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