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
在线等……