Синтаксическая ошибка в операторе INSERT INTO -ASP.Net - PullRequest
1 голос
/ 07 сентября 2011

Код:

public partial class deneme1 : System.Web.UI.Page
{
OleDbConnection ConnectionString;
OleDbCommand cmdText;
protected void Page_Load(object sender, EventArgs e)
{
    ConnectionString = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Server.MapPath("~/App_Data\\Database.mdb"));
}
protected void btnEkle_Click(object sender, EventArgs e)
{
    cmdText = new OleDbCommand("INSERT INTO Users(UserName, Password) values ('"+txtKAdi.Text+"','"+txtSifre.Text+"')", ConnectionString);

    if (ConnectionString.State == ConnectionState.Closed)
    {
        ConnectionString.Open();
    }

    cmdText.ExecuteNonQuery();
} 

Когда я пытаюсь запустить приведенный выше код, я получаю следующую ошибку

  System.Data.OleDb.OleDbException was unhandled by user code
  Message="Syntax error in INSERT INTO statement."
  Source="Microsoft JET Database Engine"
  ErrorCode=-2147217900
  StackTrace:
   konum: System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   konum: System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   konum: System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   konum: System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   konum: System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   konum: System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   konum: deneme1.btnEkle_Click(Object sender, EventArgs e) c:\Users\Pc\Desktop\MasterWeb\deneme1.aspx.cs içinde: satır 32
   konum: System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   konum: System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   konum: System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   konum: System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   konum: System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   konum: System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

1 Ответ

2 голосов
/ 07 сентября 2011

В Access Password зарезервированное слово, поэтому вы должны заключить его в кавычки, то есть

INSERT INTO Users(UserName, [Password]) values (...

Обратите внимание на квадратные скобки вокруг «пароля».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...