사용자 정의 변수를 사용하여 C#에서 Dapper/MySql 쿼리를 실행하는 방법
P粉546257913
P粉546257913 2023-08-25 23:41:09
0
2
382
<p>저는 다음 코드를 실행하려고 했습니다: </p> <pre class="brush:php;toolbar:false;">using System; Dapper 사용; MySql.Data.MySqlClient 사용; 네임스페이스 DapperTest { 수업 프로그램 { 정적 무효 Main(string[] args) { (var db = new MySqlConnection(@"mysql_connstr_here")) 사용 { var sql = @" set @foo := (table1에서 count(*) 선택); table2.*, table2에서 @foo를 선택하세요;" var 결과 = db.Query(sql); } Console.ReadLine(); } } }</pre> <p>하지만 다음과 같은 예외가 발생합니다. </p> <pre class="brush:php;toolbar:false;">System.NullReferenceException: '개체 참조가 개체의 인스턴스로 설정되지 않았습니다. ' 이 예외는 처음에 이 호출 스택에서 발생합니다. MySql.Data.MySqlClient.MySqlConnection.Reader.set(MySql.Data.MySqlClient.MySqlDataReader)</pre> <p>내 초기 추측은 변수가 SqlParameter로 처리되었으며 매개 변수를 전달하지 않았기 때문에 코드가 실패했다는 것입니다. Dapper를 사용하여 이와 같은 쿼리를 실행하는 방법이 있나요? </p>
P粉546257913
P粉546257913

모든 응답(2)
P粉099985373

또는 유효한 SQL 변수 선언을 사용하여 SQL 문을 작성할 수 있습니다.

var sql = @"declare @foo int = 0; select @foo;";

참고: 이 코드는 SQL Server에서 테스트되었으며 MySql에서는 작동하지 않습니다. 나는 그것을 사용하지 않습니다.

P粉277305212

이 내용을 Dapper 문서에서 찾았습니다.

그러므로 연결 문자열에 Allow User Variables=True를 추가하기만 하면 됩니다. 효과가 있었습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!