DataSet()을 저장할 수있는 응용 프로그램 상태를 만들 수 있습니까? 모든 사용자가 사용할 수있는 DataSet 변수를 만들고 싶습니다. 어떻게해야합니까?어떻게 응용 프로그램 변수에 dataset()을 저장할 수 있습니까?
감사합니다.
DataSet()을 저장할 수있는 응용 프로그램 상태를 만들 수 있습니까? 모든 사용자가 사용할 수있는 DataSet 변수를 만들고 싶습니다. 어떻게해야합니까?어떻게 응용 프로그램 변수에 dataset()을 저장할 수 있습니까?
감사합니다.
그것은 신중하게 MSDN을 (굵은 글씨는 내 꺼야)
응용 프로그램 상태는 모든 클래스에 사용할 수있는 데이터 저장소 읽기, 그러나
if(Application["myGlobalDataset"] == null) Application["myGlobalDataset"] = LoadMyDataSet();
설정의 문제입니다 ASP.NET 응용 프로그램. 응용 프로그램 상태는 서버의 메모리에 저장되며 정보를 데이터베이스에 저장하고 검색하는 것보다 빠릅니다. 단일 사용자 세션 인 에 해당하는 세션 상태와 달리 응용 프로그램 상태는 모든 사용자에게 적용되고 세션에 적용됩니다. 따라서 응용 프로그램 상태는 한 사용자에서 또 다른으로 변경되지 않는 자주 사용되는 소량의 데이터를 저장하는 유용한 장소 인 입니다.
변수를 initilize하는 좋은 장소는 global.asax.cs
파일
void Application_Start(object sender, EventArgs e)
{
if(Application["myGlobalDataset"] == null)
Application["myGlobalDataset"] = LoadMyDataSet();
}
에있는 Application_Start
이벤트에 있고 당신이 계획하는 경우 Application_End
이벤트
void Application_End(object sender, EventArgs e)
{
// Code that runs on application shutdown
if(Application["myGlobalDataset"] != null)
Application["myGlobalDataset"].Dispose();
}
에 그것을 파괴 기억 데이터 집합의 내용을 수정하면 변수에 대한 동시 액세스를 방지해야하므로 잠금 메커니즘이 필요하다는 것을 명심하십시오. 페이지가 아웃 처리 또는 시간 종료 그러나 나는 아직도 마지막으로 왜 사용자에게 adataset을주고 싶지 않습니다
그리고 이제 테이블에 새 행을 추가하기 위해 응용 프로그램 변수를 DataSet 변수로 생각하면됩니까? –
이제이 데이터 집합을 수정하려는 경우 동일한 변수에 대한 동시 액세스와 같은 다른 문제가 발생합니다. – Steve
global.asax 파일을 찾을 수 없습니다. 어떻게 만들 수 있습니까? –
그래서 응용 프로그램 변수에 DataSet을 저장하고 싶습니까?
응용 [ "YourDataSet"] = YourDataSetVariable.
다른 의견에서 정보를 계속 업데이트하는 것으로 보일 수도 있으므로 세션 변수에 저장하는 것이 가장 좋습니다.
을 차단 시도/모든 것을 묶어야하는 것을 선호 할 때까지
잠금은 계속? –
로그인 한 모든 사용자가 공용 테이블에 추가되기를 원합니다. 공용 테이블에는 IP 주소, 사용자 이름 및 로그인 시간이 포함됩니다. * 데이터베이스를 사용하고 싶지 않습니다. - 응용 프로그램을 사용하고 싶습니다. 상태 변수 * –