사용자가 연결 문자열과 공급자를 제공하여 다양한 데이터베이스에 액세스 할 수있는 .NET 응용 프로그램이 있습니다..NET 커넥터를 사용하여 MySQL 데이터베이스에 액세스 할 때 "Guid에 32 자리와 4 개의 대시가 포함되어야합니다."
사용자가 액세스하려는 데이터베이스 중 하나는 기본 키가 모두 GUID로 저장되는 MySQL 데이터베이스입니다 (변경할 수는 없으므로 변경할 수 없음).
내 응용 프로그램은 MySQL ODBC 3.51 드라이버를 사용할 때 해당 데이터베이스의 여러 테이블에있는 레코드에 액세스 할 수 있습니다.
그러나 동일한 코드를 사용하면 (ODBC에 매개 변수 이름 대신?가 필요하고 .NET 커넥터에는 "@name"구문이 필요함을 고려하면) 동일한 테이블에서 동일한 레코드를 읽으려고합니다 하지만 이번에는 MySQL .NET Connector (V6.1.3과 v6.2.2)를 사용하면 "Guid에 32 자리 4 개의 대시가 있어야합니다 ..."라는 오류 메시지가 나타납니다.
.NET Connector에 문제가 있습니까? 아니면 작동시키기 위해 뭔가를 지정해야합니까?
어떻게 .NET 드라이버가 GUID인지 알 수 있습니까? GUID는 원시 MySQL 데이터 유형이 아니므로 테이블 구조에서 추론 할 수 없습니다. –
guid가 포함 된 열은 어떻게 지정되며 실패한 쿼리는 어떻게 보이나요? – nos
롤랜드 : 좋은 질문입니다! 나는 그 대답을 알고 싶다. 앞에서 말했듯이 이것은 다른 사람의 데이터베이스가 아니므로 SELECT WHERE id = @paramName 호출을 실행합니다. ODBC 드라이버를 사용하여 데이터를 검색 할 수 있었기 때문에 ID가 GUID임을 알았고 GUID처럼 보입니다. – Peter