문제

사용자가 텍스트 상자에 데이터를 입력하고 "저장"버튼을 클릭하면 다음에 프로그램이 열렸을 때 정보가 어떤 종류의 파일에 저장되는 C# 프로그램을 작성하려고합니다. 정보가 자동으로로드됩니다.

Visual C# Express를 사용하고 있습니다. MySQL 또는 MSSQL과 같은 일종의 데이터베이스를 요구하지 않고이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

유일한 방법이나 가장 쉬운 방법이 데이터베이스라면 액세스를 사용하고 싶습니다. 그렇다면 프로그램 사용자가 내 프로그램을 컴퓨터에서 실행하려면 액세스가 설치되어야합니까? 다른 데이터베이스를 사용하면 어떻게됩니까?

추신

언급하는 것을 잊었습니다. 오히려 사용자 가이 파일에 액세스 할 수없고 내용을 쉽게 읽을 수 없습니다. 암호화가없는 텍스트 파일은 쉽게 열기가 쉽습니다. 이것을 암호화하는 방법이 있습니까? 또한 ':'와 같은 구분기를 사용하면 사용자가 해당 문자를 사용할 수 없음을 의미합니다. 그래서 다른 방법으로?

감사!

도움이 되었습니까?

해결책

키워드를 추가하여 사용자 데이터를 직렬화 할 수 있습니다.

[Serializable]

데이터 구조 이상. 대화 상자를로드 할 때는 디스크에서 직렬화 된 구조를로드하고 대화 상자를 떠날 때 데이터 구조를 저장하십시오.

스타일의 관점에서, 대화 상자가 닫힐 때까지 대화 상자 데이터를 변경하지 않아야 할 것입니다 (모달 인 경우).

저장하려면 :

    private bool Save(String inFileName, MyObject inObject){
        try {
            FileStream theStream = File.Open(inFileName, FileMode.Create);

            BinaryFormatter theFormatter = new BinaryFormatter();
            theFormatter.Serialize(theStream, inObject);//add it to the end there
            theStream.Dispose();
            theStream.Close();
        } catch{
            return false;
        }
        return true;

    }

로드하려면 :

    private MyObject Read(String inFileName){
        MyObject theReturn = null;
        try {

            FileStream theStream = File.Open(inFileName, FileMode.Open, FileAccess.Read);                

            BinaryFormatter theFormatter = new BinaryFormatter();
            theReturn = (CImageData)theFormatter.Deserialize(theStream);//add it to the end there
            theStream.Dispose();
            theStream.Close();
        }
        catch {
            return null;
        }
        return theReturn;
    }

스트림에서 '사용'을 사용할 수도 있지만이 코드는 매우 간단합니다. 또한 myObject에 더 많은 항목을 추가 할 수 있음을 의미합니다.

편집 : 암호화의 경우 AES 또는 유사한 것을 추가 할 수 있습니다. 그것은 당신에게 과잉 일 수 있으며, 파일을 바이너리로 저장하면 메모장과 같은 것으로 읽을 수 있지만 쉽게 편집 할 수는 없습니다. 다음은 실제 암호화에 대한 긴 설명입니다.

http://msdn.microsoft.com/en-us/magazine/cc164055.aspx

다른 팁

SQL Compact Edition 데이터에 쉽게 액세스 할 수있는 데있어 (및 무료) 데이터를 숨길 수 있습니다. CE 데이터베이스를 보호 할 수도 있습니다. SQL CE 데이터베이스는 Access와 같은 .SDF 파일에 완전히 포함되어 있으므로 .SDF 파일을 복사 할 수 있으며 네트워크 연결에 대해 걱정할 필요가 없습니다.

응용 프로그램은 한 사람 만 사용하는 경우 데이터를 파일에 저장하기 만하면됩니다 (XML은 일부 구조를 제공합니다).

여러 사람이 애플리케이션을 사용하고 해당 데이터를 공유하면 데이터베이스가 최선의 선택입니다. 데이터베이스를 사용하는 경우 예, 사용자 컴퓨터에 데이터베이스를 설치해야하지만 사용자에게 투명하게 수행 할 수는 있지만 MySQL과 같은 것이 가장 좋을 것입니다. 내기.

(편집 : 데이터베이스는 실제로 사용자 컴퓨터에있을 필요는 없지만 그의 대처에서 볼 수 있어야합니다)

매우 간단하다면 일반 텍스트 파일에 배치 할 수 있습니다. 보다 구조화 된 데이터의 경우 CSV로 저장하고 구문 분석하거나 XMLDocument를 작성하고 디스크에 저장하는 것을 고려할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top