2015-07-22 1 views
1

У меня есть приложение DNN, и мне удалось установить пользовательский модуль. Модуль в основном увеличивает и уменьшает значение в метке. И там также есть кнопка с именем submit, которая отображает только положительное значение в метке, которое также является значением, которое увеличивается и уменьшается. Цель состоит в том, чтобы подсчитать загрузку пользователя в приложении.Как сохранить добавочное значение в Postgres, используя C#

Теперь вот мой декремент код: общественной недействительная doDecrement (строка propertyKey, UserInfo UserInformation, внутр portalID) { INT newDownloadCount = GetProfilePropertyValueAsInt (propertyKey, UserInformation); ; int result = 0; result = newDownloadCount - 1; userInformation.Profile.SetProfileProperty (свойствоKey, result.ToString()); UserController.UpdateUser (portalID, userInformation); }

А вот мой инкремент код:

public void doIncrement(string propertyKey, UserInfo userInformation, int portalID) 
{ 
    int newDownloadCount = GetProfilePropertyValueAsInt(propertyKey, userInformation); 
    int result = 0; //initialize to zero 
    result = newDownloadCount + 1; //assign new value 
            //set the profile property to RAM... no need to test because Get will default to zero 
    userInformation.Profile.SetProfileProperty(propertyKey, result.ToString()); 
    //call update user to write the changes to disk 
    UserController.UpdateUser(portalID, userInformation); 
} 

Вот мой код представить, так что я могу обновить значение:

public void UpdatePropertyValue(string propertyKey, UserInfo userInformation, int portalID, string txtNewVale) 
{ 
    int newDownloadCount = 0; 
    int resultValue = 0; 
    int.TryParse(txtNewVale, out newDownloadCount); 
    if (String.IsNullOrEmpty(txtNewVale)) 
    { 
     newDownloadCount = resultValue; 
    } 
    userInformation.Profile.SetProfileProperty(propertyKey, newDownloadCount.ToString()); 
    UserController.UpdateUser(portalID, userInformation); 
} 

Моя проблема сейчас, я испытывающий дорогу блок. Я хочу сохранить добавочное значение в базе данных с помощью postgres. Я хочу, чтобы всякий раз, когда значение увеличивалось или уменьшалось или обновлялось, оно будет сохраняться в базе данных.

Я бы очень признателен всем, кто мог бы помочь. Заранее спасибо.

ответ

1

Как вы, вероятно, знаете, уровень доступа к данным DNN написан для MS SQL Server. Официальной поддержки баз данных с открытым исходным кодом, таких как Postgres или mySQL, нет. Однако вы можете написать код, который будет подключаться к внешней базе данных. Это сложнее, но может быть сделано.

Поскольку у вас уже есть значение приращения, обновляемое в профиле пользователя (которое хранится в базе данных DNN SQL), вам нужно написать другой метод, который получает значение профиля пользователя и обновляет внешнюю базу данных.

Сначала загрузите .NET Postgres data driver. Добавьте строку соединения в DNN web.config в качестве ключа приложения.

<appSettings> 
... 
    <add key="PostgresDBConn" value="Server=my-postgres-svr;Port=9090;User Id=dbuser;Password=abc123;Database=dnnExternalTables;" /> 
... 
</appSettings> 

Затем используйте следующие действия для получения строки соединения в коде модуля:

string connstring = DotNetNuke.Common.Utilities.Config.GetSetting("PostgresDBConn"); 
NpgsqlConnection conn = new NpgsqlConnection(connstring); 
conn.Open(); 

Затем следует за Npgsql example for doing an update like this one.

+0

Ссылка, которую вы предоставили, в настоящее время повреждена. Есть ли новая ссылка на этот пример? –