Отправляет email-рассылки с помощью сервиса Sendsay

Секреты программирования

  Все выпуски  

Секреты программирования - сервисы для изучения иностранных языков


Уважаемые подписчики!

Сегодняшняя тема - сервисы для изучения иностранных языков.
На сайте "Полигон виртуального образования" ( http://www.pvobr.ru ) открылся новый сервис - "языковая лаборатория". Он предоставляет зарегистрированным пользователям доступ к 9 звуковым словарям из 5000 слов, а также возможность составления своих списков слов для заучивания. При заучивании в новом окне возникает слово, нужно ввести его перевод или оригинальный текст. Демо-версия - http://www.pvobr.ru/langlab/dictionary.aspx .
Чтобы иметь разные языки на одной хтмл-странице, удобнее всего использовать Юникод в кодировке utf-8. База данных mySQL 5 хорошо поддерживает Юникод. Для доступа к ней из aspx-страниц используется ado.net mySQL connector (MySql.Data.dll), который помещается в директории /Bin .

Типовая aspx-страница имеет примерно следущий код
<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="MySql.Data.MySqlClient" %>

%<
    if( connStr != null && connStr != "" )
    try
    {
        conn = new MySqlConnection(connStr);
        conn.Open();
        
        cmd = new MySqlCommand();
        cmd.Connection = conn;
        
        cmd.CommandText = "SET NAMES 'utf8';";  //very important first command
        cmd.ExecuteNonQuery();
        
        //запрос к базе и выдача содержимого
        sql = "SELECT * FROM tblWords WHERE langid=1";

        cmd.CommandText = sql;
        rs = cmd.ExecuteReader();
        while( rs.Read() && i < limit )
        {
            sWord = rs["article"].ToString().Trim() + " " + rs["word"].ToString().Trim();
            Response.Write( sWord  + "<br />" );
        } 
        rs.Close();
    }
    catch (Exception ee)
    {
        Response.Write(ee.ToString() + "<br />");
    }
    finally
    {
        if (rs != null && !rs.IsClosed)
        {
            rs.Close();
        }

        if (conn != null && conn.State == ConnectionState.Open)
        {
            conn.Close();
        }
    }
%>

Если есть вопросы по деталям реализации, задавайте их форуме сайта http://www.pvobr.ru в разделе "Программирование" / "Языковая лаборатория".
Успехов! Андрей

В избранное