IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   ASP.net, sql-запрос. Проблема. (http://www.imho.ws/showthread.php?t=87716)

skiproff 17.06.2005 00:32

ASP.net, sql-запрос. Проблема.
 
Вложений: 1
При написании Web-сервиса у меня возникли проблемы с запросами на
вставку и удаления записей в базе данных. Запросы писал сам (ручками),
но проверял в MS Access и там всё работало. А в самой проге ... фигня
какая-то. Ничего не получается. Странность заключается в том, что
после запуска проги MS Access может открыть базу только на чтение, а
однажды мне удалось вообще "убить" базу.
Очень прошу помощи. Уже пол дня с этой проблемой провозился. Пробовал
изменять запросы ни хрена не вышло.

Вот исходный код, проблемных процедур:
Код:

      ....
      private const string ConnectionStr="Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source=C:\\Inetpub\\wwwroot\\.temp\\table.mdb";
      ......

                [WebMethod(EnableSession=false)]
                public bool InsertCD(UserInfo user, CDInfo cd)
                {
                        int UserID;
                        UserID=GetUserID(user);
                        if (!LogOnSuss)
                                return false;

                        OleDbConnection MyConn= new OleDbConnection(ConnectionStr);
                        string InsertSql="INSERT INTO [CDs] (CD_ID,User_ID,CD_name,CD_desc) VALUES (DEFAULT,'"+UserID+"','"+ cd.name+"','"+cd.description+"')";

                        OleDbCommand MyCom= new OleDbCommand(InsertSql,MyConn);
                        MyConn.Open();
                        MyCom.ExecuteNonQuery();
                       
                        MyConn.Close();

                        return true;
                }

                [WebMethod(EnableSession=false)]
                public void DeleteYourCD(UserInfo user, int CD_ID)
                {
                        int UserID;
                        UserID=GetUserID(user);
                        if (!LogOnSuss)
                                return;

                        OleDbConnection MyConn= new OleDbConnection(ConnectionStr);
                        //string DeleteSql="DELETE * FROM [CDs] WHERE CD_ID='" +CD_ID+"' AND User_ID='"+UserID+"'";
                        string DeleteSql="DELETE FROM [CDs] WHERE CD_ID='" +CD_ID+"' AND User_ID='"+UserID+"'";
                        OleDbCommand DelComm= new OleDbCommand(DeleteSql,MyConn);

                        MyConn.Open();
                        DelComm.ExecuteNonQuery();
                        MyConn.Close();
                }

На всякий случай прилагаю Visual Studio проект и саму базу (в архиве).
И ещё также на всякий случай у меня стоит: MS Visual Studio .Net Ver
7.0.9466, .Net Framework ver 1.0.3705, Ms office 2000.

P.S. В asmx-файле (чтобы в броузере можно было протестить) написаны
были написаны процедуры TestDeleteYourCD и TestInsertCD, но они также не работали.

P.P.S. Ещё в книге по SQL я прочитал, что в качестве значений в
запросе на вставку можно использовать DEFAULT и NULL, но почему-то у
меня это не работало в MS Access.

skiproff 22.06.2005 13:43

Проблема решена. Оказалось, что пользователю ASPNET достаточно прав не дал.


Часовой пояс GMT +4, время: 14:39.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.