Использование extjs4 с c # как мне получить доступ к моим данным - PullRequest
0 голосов
/ 25 августа 2011

Мне нужно добавить данные пользователя в мою базу данных через форму

Итак, у меня есть форма с таким обработчиком отправки:

xtype: 'fieldset',
        title: 'User information',
        defaults: {
            //width: 230,
            labelStyle: 'font-size:10px',
            labelWidth: 105
        },
        defaultType: 'textfield',
        layout : 'anchor',
        items: [{
            fieldLabel: 'Name',
            anchor: '98%',
            allowBlank: false,
            name: 'company'
        }, {
            fieldLabel: 'Last Name',
            anchor: '98%',
            name: 'price'
        }, {
            fieldLabel: 'Email ',
            anchor: '98%',
            allowBlank: false,
            vtype: 'email',
            name: 'pctChange'
        }

        ]
    },
             { border: false,
                 buttons: [{
                     text: 'Update user',
                     handler: function () {


                         {
                             if (this.up('form').getForm().isValid()) 
                            {                           
                               this.up('form').getForm().submit({url : 'save.cs' }); // this would submit the form to the configured url
                               //this.up('form').getForm().reset();
                               Ext.MessageBox.show({
                                 title: 'Success !',
                                 msg: 'Changes saved successfully<br />',
                                 icon: Ext.MessageBox.INFO
                                                    })                              
                             }

Из того, что я понял, функция submit вызывает скрипт (в моем случае save.ashx), который должен обновить мою базу данных!

У меня есть две проблемы:

1-как получить доступ к моим данным (отправлено в форме) Я попытался добавить аргументы в функцию сохранения, как вы увидите ниже, но я не уверен в этом

2-я получаю внутреннюю ошибку сервера при вызове save.ashx

Вот мой сценарий:

 public class save
{
    SqlConnection dbConn = new SqlConnection("............");


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

    try
          {
              string str = "insert into UTILISATEUR  (firstname, lastname, 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();
                }

          }
       catch (Exception ex)
         {
             throw ex;
         }
    }
}

спасибо за ваше время

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Это никогда не сработает, потому что Li0liQ сказал, что вы не можете выполнить файл .cs.

C # - это скомпилированный язык, который не является "языком сценариев", таким как PHP.

Думаю, вам следует прочесть книгу о том, как разрабатывать веб-приложения на C #.

И, кроме того, ваш код в saveUser никогда не будет работать, потому что

 dbConn.Open();

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

Вы открываете соединение, затем проверяете состояние, и если оно открывается, вы закрываете его, затем выполняете команду.

Это не имеет смысла.

  dbConn.Open();

  sqlCommand.ExecuteNonQuery();

  dbConn.Close();

Таким образом, это будет иметь больше смысла.

1 голос
/ 25 августа 2011

.cs-файлы запрещены IIS - это источники C # и не должны быть доступны конечным пользователям. Конечные пользователи должны так или иначе получить доступ к скомпилированным версиям этих источников. Например. Вы можете создать обработчик HTTP (.ashx-файл), который будет обрабатывать ваши запросы.

Этот вопрос поможет вам получить основы для отправки формы в HTTP-обработчик.

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