C# 양식 응용 프로그램에서 발생할 수 있는 몇 가지 이상한 문제

저는 최근에 프로그램 교육 수업을 듣고 주로 C#을 사용하여 관리 프로그램을 작성했습니다.

다음과 같은 질문이 있습니다.

问题1:.문자열에서 uniqueidentifier로 변환할 때 변환에 실패했습니다.

문제 2: ExecuteNonQuery에는 이미 열려 있고 사용 가능한 연결이 필요합니다. 연결의 현재 상태는 닫혀 있습니다.

 문제 3: CS0012 '개체' 형식이 참조되지 않는 어셈블리에 정의되어 있습니다. 어셈블리 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'에 대한 참조를 추가해야 합니다.

현재 사용되는 주요 데이터베이스 구조는 다음과 같습니다.

데이터베이스에 연결하는 많은 오류는 고유 식별자 uniqueidentifier라는 특수한 유형의 ID에 보고됩니다.프로그램에서 유형은 Guid이지만 식별자는 실제로 데이터베이스에서 없어서는 안되기 때문에 이러한 문제도 해결할 수 없습니다. .

问题1:문자열에서 uniqueidentifier로 변환할 때 변환에 실패했습니다.

문제 배경은 입력 ID 형식이 문자열이고 쿼리할 때 문제가 발생한다는 것입니다. 보기의 편의를 위해 다음과 같이 SQL 쿼리에 문제를 넣었습니다.

Select * from Operator where id='3a9a2894-f9f6-4ffe-b8e6-a67e949f276c'

이 문제는 오랫동안 저를 괴롭혔습니다. 프로그램 실행 중에 종종 연결이 끊깁니다. 정보를 조회하는 이유가 무엇인지... 잊어버렸습니다. 구체적인 해결 방법은 다음과 같습니다.

select * from Operator where id =CAST('3a9a2894-f9f6-4ffe-b8e6-a67e949f276c' AS UNIQUEIDENTIFIER)

문제 2: ExecuteNonQuery에는 이미 열려 있고 사용 가능한 연결이 필요합니다. 연결의 현재 상태는 닫혀 있습니다.

이 질문이 실제로 말하는 방식은 매우 직설적이지만 여러 번 잊고 한동안 멈췄습니다. 특정 배경은 쿼리를 위해 데이터베이스에 연결할 때 오류가 보고된다는 것입니다. 해결책은 연결을 여는 것을 기억하는 것입니다. 아래에서 열기입니다.

 using (SqlConnection conn = new SqlConnection(connStr))
 {
     conn.Open();
     SqlCommand commUpdate = new SqlCommand(sql, conn);
     int n = commUpdate.ExecuteNonQuery();
     if (n > 0)
     {
        flag = true;
     }
}

 문제 3: CS0012 '개체' 형식이 참조되지 않는 어셈블리에 정의되어 있습니다. 어셈블리 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'에 대한 참조를 추가해야 합니다. 

 이 오류는 매우 이상하고 이상합니다.구체적인 표현은 생성된 클래스 라이브러리가 종속성에서 System.Configuration과 같은 일부 라이브러리를 참조할 수 없으며 매우 이상한 오류가 보고될 수 있다는 것입니다.어쨌든 이해가 되지 않는다면, 다음이 나타날 수 있습니다.

 거의 모든 관련 블로그를 뒤져봐도 해결 방법이 없네요 나중에 우연히 두 클래스 라이브러리의 뉘앙스를 알게 되었어요 잘 보시면 클래스 라이브러리는 사실 Standard와 Framework 두 종류가 있습니다 처음에 Standard를 만들었는데, 너무 많아서 호환이 안되고 나중에 프레임워크로 바꿔도 문제 없을겁니다. 당신이 저와 같고 양식 응용 프로그램에서 유사한 오류를 보고하는 경우 잘못된 유형의 생성으로 인해 발생했는지 고려할 수 있습니다.

추천

출처blog.csdn.net/weixin_60360239/article/details/129286925