DataAdapter 保存数据时提示Insert语法错误,为什么?

qiaov 2003-08-30 11:50:03
保存数据部分函数如下(asp.net中)
void RegUser()
{
//Open Database & Save user info
string strName = Request.Form["txtName"];
string strPword = Request.Form["txtPword"];
string strCword = Request.Form["txtCPword"];
string strSQuestion = Request.Form["txtSQuestion"];
string strSAnswer = Request.Form["txtSAnswer"];
string strEmail = Request.Form["txtEmail"];
string strQQ = Request.Form["txtQQ"];
//Check. all field is required.
if( strName == "" || strPword == "" || strCword == "" || strSQuestion == "" || strSAnswer == "" || strEmail == "")
{
ShowMsg("Red","Please enter all required fields!");
return;
}
if(strPword != strCword)
{
ShowMsg("Red","The Password does not match with Comfirm pass word.");
return;
}
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".\\BBS.mdb");
string strSQL = "Select * From Logins Where UserName ='" + strName + "'";
//equal to : OleDbConnection myConn = new OleDbConnection(strConn);
OleDbConnection myConn = new OleDbConnection();
myConn.ConnectionString = strConn;
myConn.Open();
OleDbCommand myComd = new OleDbCommand(strSQL,myConn);
OleDbDataReader dr = myComd.ExecuteReader();
if(!dr.Read()) //if the UserName exist in database.
{
//The NickName not exist in database.
ShowMsg("Blue","Congratulation! You have signed up with your favorite NickName, " + strName + ".");
dr.Close();
//myConn.Close();
DataSet ds = new DataSet();
OleDbDataAdapter myAdapter = new OleDbDataAdapter(strSQL, myConn);
myAdapter.SelectCommand = myComd;
OleDbCommandBuilder CustCb = new OleDbCommandBuilder(myAdapter);
myAdapter.Fill(ds,"Logins");
DataRow drow = ds.Tables["Logins"].NewRow();
drow["UserName"] = strName;
drow["PassWord"] = strPword;
drow["Question"] = strSQuestion;
drow["Answer"] = strSAnswer;
drow["Email"] = strEmail;
drow["QQ"] = strQQ;
drow["RegDate"] = DateTime.Now;
ds.Tables["Logins"].Rows.Add(drow);
myAdapter.Update(ds,"Logins"); //提示出错的地方
}
else
{
ShowMsg("Red","Sorry! Your favorite NickName had been register by others, Please change another one.");
dr.Close();
myConn.Close();
return;
}
}
出错的提示是:
异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。

源错误:


行 84: drow["RegDate"] = DateTime.Now;
行 85: ds.Tables["Logins"].Rows.Add(drow);
行 86: myAdapter.Update(ds,"Logins");
行 87: }
行 88: else

在线等……
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaov 2003-08-30
  • 打赏
  • 举报
回复
高手就是高手,问题解决了,的确是password的原因,谢谢思归。给分喽。
saucer 2003-08-30
  • 打赏
  • 举报
回复
"password" is a 关键词 in Access, try to modify the InsertCommand's CommandText and change "password" to "[password]"

or try
string strSQL = "Select UserName,[Password], Question,Answer, Email, QQ, RegDate From Logins Where UserName ='" + strName + "'";
qiaov 2003-08-30
  • 打赏
  • 举报
回复
请高手指点,新手入门中。
qiaov 2003-08-30
  • 打赏
  • 举报
回复
异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。

源错误:


行 84: ds.Tables["Logins"].Rows.Add(drow);
行 85: OleDbCommandBuilder CustCb = new OleDbCommandBuilder(myAdapter);
行 86: myAdapter.Update(ds,"Logins");
行 87: }
行 88: else

还是老样子,提示Insert语法出错是什么意思?信心丧失中……
panyee 2003-08-30
  • 打赏
  • 举报
回复
这两句放在一起,
OleDbCommandBuilder CustCb = new OleDbCommandBuilder(myAdapter);

myAdapter.Update(ds,"Logins"); //提示出错的地方

62,046

社区成员

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

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

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

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