При написании 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.