Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   ADO.NET запись в Access (http://forum.oszone.net/showthread.php?t=234000)

veter48 04-05-2012 00:22 1910201

ADO.NET запись в Access
 
Здравствуйте. Есть база данных Access. Через c#.net подключаюсь к ней через. Выбрать данные получилось, а вот записать никак! Делал с начала с запросом с параметрами, но ничего не получилось. Теперь пробую вот так просто:
Код:

        string connectString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\\db_kl.mdb";
               
                public bool AddNewClientIntoDB()
        {
            bool flag = false;
            using (OleDbConnection conn = new OleDbConnection(connectString))
            {
                string query = "INSERT INTO Klienti (KlName, KSureName, KlPhone, KlAdress, KlEmail) VALUES ('Andris','Dzied','22222123','London Matisa 120','a@aaa.net')";
                OleDbCommand comm = new OleDbCommand(query, conn);
               
                try
                {
                    conn.Open();
                    if (comm.ExecuteNonQuery() == 1)
                        flag = true;
                }
                catch { }
            }

            return flag;
        }

Но не получается, запись но добавляется. Попробовал выполнить этот запрос в Access Query и все работает. В чем может быть дело?

Delirium 04-05-2012 01:14 1910220

Цитата:

Цитата veter48
Но не получается, запись не добавляется »

Запрос проходит успешно или вываливается в заглушку catch ?

veter48 04-05-2012 11:36 1910343

Спасибо, убрал try catch. и увидел ошибку. В таблице стоит правило ввода на поле KlEmail. Я ввожу правильный адрес но не проходит, в чем может быть дело?

oledbexception was unhandled
Неверный формат е-майла
В таблице Access:
Validation rule: ((Like "*?@?*.?*") And (Not Like "*[ ,;]*"))
Validation text: Неверный формат е-майла

Delirium 05-05-2012 00:52 1910788

Цитата:

(Like "*?@?*.?*")
МОжет быть, все таки (Like "?*@?*.?*") ?
Убери для начало проверку, а потому, если сработает, возвращай и колдуй над ней.
А try...catch удалять не надо, лучше приведи заглушку в правильный вид:

Код:

catch(oledbexception ex)
{
  MessageBox.Show(ex.Message);
}
catch(exception ex2)
{
  MessageBox.Show("Другие ошибки:" + ex2.Message);
}

Так ты сможешь видеть ошибки без вылета из кода.


Время: 18:49.

Время: 18:49.
© OSzone.net 2001-