我一直收到这个错误 . 我读到OleDb不支持命名参数所以我将它们更改为 (?, ?)
.
但是继续得到同样的错误
System.Data.OleDb.OleDbException:INSERT INTO语句中的语法错误 . System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,Object&executeResult)的System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)处于System.Data的System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&executeResult) . 位于Registration.ImageButton1_Click(System sender,ImageClickEventArgs)的System.Data.OleDb.OleDbCommand.ExecuteNonQuery()处的System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior,String方法)中的OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior,Object&executeResult) e)在c:\ Users \ Nirre \ Desktop \ Cti Project \ Book Club TRY 2 \ Registration.aspx.cs:第51行
这是.cs类中的代码
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (IsPostBack)
{
OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
string insCmd = @"INSERT COUNT(*) INTO Registration(UserName, [Password], EmailAddress, FullName, Country, PasswordRecovery)
VALUES (?, ?, ?, ?, ?, ?)";
OleDbCommand insertUser = new OleDbCommand(insCmd, conn);
insertUser.Parameters.AddWithValue("@UserName", txtUserName.Text);
insertUser.Parameters.AddWithValue("@Password", txtPassoword.Text);
insertUser.Parameters.AddWithValue("@EmailAddress", txtEmail.Text);
insertUser.Parameters.AddWithValue("@FullName", txtFullName);
insertUser.Parameters.AddWithValue("@Country", DdlCountry.SelectedItem.ToString());
insertUser.Parameters.AddWithValue("@PasswordRecovery", txtAnswer.Text);
try
{
insertUser.ExecuteNonQuery();
conn.Close();
Response.Redirect("Login.aspx");
}
catch (Exception er)
{
Response.Write(er);
lblError.Visible = true;
lblError.Text = "An error has ocured pleas try again...!";
}
finally
{
// Code
}
}
}
2 回答
INSERT COUNT(*)
不是有效的SQL语句,只需删除COUNT(*)
,其余代码似乎正确 .See here for refs
应该
我不明白你想用COUNT做什么 . 如果您想返回受影响的行数,只需添加return参数并为其分配@@ ROWCOUNT
编辑:我从未在Reporting Services外部使用问号作为参数占位符,因此请尝试使用命名参数替换它们,如上所示 .