extjs / c # - как сохранить данные из формы в базу данных? - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь добавить нового пользователя в свою базу данных через форму, которую я подготовил, но моя проблема в том, как сохранить данные из этой формы в моей базе данных?я использую c # и extjs4.0.1

я знаю, что мне нужно использовать submit для кнопки и дать ей URL, я сделал это, но когда я нажимаю на это, ничего не происходит!без ошибок!я получаю информацию об успехе!но когда я проверяю базу данных, ничего не вставляется! как моя функция updateuser никогда не вызывалась? !!

вот мой сценарий формы:

buttons: [{
                     text: 'Save user',
                     handler: function () {
                             if (this.up('form').getForm().isValid())
                                 this.up('form').getForm().submit
                                 ({// this would submit the form to the configured url
                                     url: 'update.ashx',
                                     success: function (form, action) {
                                         Ext.MessageBox.show({
                                             title: 'Success !',
                                             msg: 'Changes saved successfully<br />',
                                             icon: Ext.MessageBox.INFO
                                         })
                                     },                                        
                                 });
                                 this.up('form').getForm().reset();

                     }

и вот мое обновление.Сценарий Ashx:

public class update : IHttpHandler
{
    SqlConnection dbConn = new SqlConnection("....");

    public void ProcessRequest(HttpContext context)
    {        }

    public bool IsReusable
    {
        get           {          return false;            }
    }

    public void updateUser(string firstname, string lastname, string email)
    {


        string str = "insert into User  (Name , FName , Email ) values ( '" + firstname + "' , '" + lastname + "' , '" + email + "' )";

        SqlCommand sqlCommand = new SqlCommand(str);
        sqlCommand.Connection = dbConn;
        sqlCommand.CommandType = CommandType.Text;
        SqlDataAdapter sda = new SqlDataAdapter(sqlCommand);
        dbConn.Open();

        if (sqlCommand.Connection.State == ConnectionState.Open)
        {
            sqlCommand.ExecuteNonQuery();
            dbConn.Close();
        }
    }

}

Есть идеи, пожалуйста?по крайней мере, дайте мне знать, если я на правильном пути или нет ... спасибо

1 Ответ

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

прежде всего «success: function (form, action)» этот вызов функции не означает, что пользователь обновления был успешным, просто, что отправка была успешной ... для успеха вам нужно кодировать json с успехом true, а затем action.result.success определит, был ли успех истинным ... проверьте API .....

Во-вторых, я не очень-то разбираюсь в ac #, парень ... но, похоже, вы не понимаетедаже не обработать запрос

Редактировать:

Чтобы избежать проблемы с дублированием, отправьте дополнительный параметр обработчику ... и выполните метод обновления только при полученииобновление действия в запросе

url: 'update.ashx',
params: {action: 'update'},
success: function (form, action) {

отправка формы отправляет значения формы обработчику внутри объекта HttpRequest, содержащегося в объекте контекста .. для извлечения значений формы вы можете проверить http://msdn.microsoft.com/en-us/library/system.web.ihttphandler.processrequest.aspx пример

...