C #에서 MySQL "PRINT"명령의 출력을 어떻게 표시 할 수 있습니까?

에드워드 보안관 커티스

c # asp net을 사용하여 mysql 저장 프로 시저를 실행하려고합니다.

mysql에서 시도한이 저장 프로시 저는 잘 작동합니다.

대신 내 프로젝트의 코드에서 테스트했습니다. mysql 구문 오류가 있습니다.

오류 [42000] [MySQL] [ODBC 5.1 드라이버] [mysqld-8.0.12] SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 1 행의 'mysp'근처에서 사용할 올바른 구문을 확인하십시오.

"PRINT"명령의 출력, 즉 C #의 프로 시저를 추출하는 방법은 무엇입니까?

.cs

using (OdbcConnection cn =
  new OdbcConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString))
{
    using (OdbcCommand command =
        new OdbcCommand("mysp", cn))
    {
        try
        {
            command.Connection.Open();
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddWithValue("sYear", ddlyear.SelectedValue);

            using (OdbcDataAdapter sda = new OdbcDataAdapter(command))
            {
                DataTable dt = new DataTable();
                sda.Fill(dt);
                gv.DataSource = dt;
                gv.DataBind();
            }
        }
        catch (Exception ex)
        {
            throw new ApplicationException("operation failed!", ex);
        }
        finally
        {
            command.Connection.Close();
        }
    }
}

sp

CREATE DEFINER=`root`@`%` PROCEDURE `mysp`(IN sYear VARCHAR(255))
BEGIN

DECLARE 2sYear VARCHAR(255);
SET 2sYear = sYear;

SET @s = CONCAT('SELECT * FROM `mytable_',2sYear,'`;');
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END

편집하다

이 문제는 사용자 nbk의 제안으로 해결되며 원본 텍스트에서 복사 붙여 넣기 오류가 발생했습니다.

nbk

절차에 대한 변수는 sYear

하지만 코드에서 sAnno

CREATE TABLE mytable_2025 ( id int)
CREATE  PROCEDURE `mysp`(IN sYear VARCHAR(255))
BEGIN

DECLARE 2sYear VARCHAR(255);
SET 2sYear = sYear;

SET @s = CONCAT('SELECT * FROM `mytable_',2sYear,'`;');
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END
call mysp('2025')
| 아이디 | 
| -: | 

SELECT @s
| @s | 
| : ---------------------------- | 
| SELECT * FROM`mytable_2025`; |
SELECT @2sYear
| @ 2sYear | 
| : ------ | 
| null     |

db <> 여기에 바이올린

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CakePHP를 사용하여 mySQL의 문자열 출력을 어떻게 표시 할 수 있습니까?

분류에서Dev

명령의 출력을 쉘 변수에 어떻게 할당 할 수 있습니까?

분류에서Dev

명령의 출력을 bash의 함수에 어떻게 전달할 수 있습니까?

분류에서Dev

명령의 출력을 파일에 쓰는 동안 터미널에 출력을 표시 할 수 있습니까?

분류에서Dev

명령의 출력을 잡아서 실패 할 경우 어떻게 함수로 보낼 수 있습니까?

분류에서Dev

배치 명령 "start"와 같이 lua에서 파일을 어떻게 시작 / 표시 할 수 있습니까?

분류에서Dev

어떻게 파이썬 x265.exe의 실시간 명령 줄 출력을 캡처 할 수 있습니까?

분류에서Dev

명령 줄에서 시간을 어떻게 추적 할 수 있습니까?

분류에서Dev

파이썬 코드에서 유닉스의 "uniq -c"명령을 어떻게 사용할 수 있습니까?

분류에서Dev

다른 명령 처리기에서 명령 처리기 호출을 어떻게 모의 할 수 있습니까?

분류에서Dev

배치 스크립트의 파일에 명령 출력을 어떻게 인쇄 할 수 있습니까?

분류에서Dev

c 명령 system ()의 출력이 콘솔에 표시되지 않고 파일로 이동할 수 있습니까?

분류에서Dev

내 명령의 출력을 어떻게 필터링 할 수 있습니까? (Powershell)

분류에서Dev

이전 명령의 출력을 어떻게 사용할 수 있습니까?

분류에서Dev

이전 명령의 출력을 어떻게 사용할 수 있습니까?

분류에서Dev

R의 플롯에서 INF 값을 어떻게 표시 할 수 있습니까?

분류에서Dev

R의 플롯에서 INF 값을 어떻게 표시 할 수 있습니까?

분류에서Dev

'ls -l'명령에서 '전체'출력을 어떻게 제어 할 수 있습니까?

분류에서Dev

python sh 모듈을 사용하여 실행중인 명령의 출력을 어떻게 표시 할 수 있습니까?

분류에서Dev

Windows "실행"명령에서 명령을 시작할 때 열리는 창을 어떻게 사용자 정의 할 수 있습니까?

분류에서Dev

마지막 명령에서 출력되는 파이썬 배열을 어떻게 계산할 수 있습니까?

분류에서Dev

루트가 아닌 Ubuntu 서버에서 시작할 때 명령을 어떻게 실행할 수 있습니까?

분류에서Dev

vim에서 bash_history의 명령을 어떻게 호출 할 수 있습니까?

분류에서Dev

하나의 명령 줄에 &가있는 여러 명령을 어떻게 실행할 수 있습니까?

분류에서Dev

하나의 명령 줄에 &가있는 여러 명령을 어떻게 실행할 수 있습니까?

분류에서Dev

mysql에서 시간 형식을 어떻게 설정할 수 있습니까?

분류에서Dev

인터페이스 파일에서 펑터의 출력 서명을 어떻게 사용할 수 있습니까?

분류에서Dev

가변 길이 명령 출력을 어떻게 할당 할 수 있습니까?

분류에서Dev

C 시스템 / popen 명령에서 다른 C ++ 프로그램으로 어떻게 계속 입력 할 수 있습니까?

Related 관련 기사

  1. 1

    CakePHP를 사용하여 mySQL의 문자열 출력을 어떻게 표시 할 수 있습니까?

  2. 2

    명령의 출력을 쉘 변수에 어떻게 할당 할 수 있습니까?

  3. 3

    명령의 출력을 bash의 함수에 어떻게 전달할 수 있습니까?

  4. 4

    명령의 출력을 파일에 쓰는 동안 터미널에 출력을 표시 할 수 있습니까?

  5. 5

    명령의 출력을 잡아서 실패 할 경우 어떻게 함수로 보낼 수 있습니까?

  6. 6

    배치 명령 "start"와 같이 lua에서 파일을 어떻게 시작 / 표시 할 수 있습니까?

  7. 7

    어떻게 파이썬 x265.exe의 실시간 명령 줄 출력을 캡처 할 수 있습니까?

  8. 8

    명령 줄에서 시간을 어떻게 추적 할 수 있습니까?

  9. 9

    파이썬 코드에서 유닉스의 "uniq -c"명령을 어떻게 사용할 수 있습니까?

  10. 10

    다른 명령 처리기에서 명령 처리기 호출을 어떻게 모의 할 수 있습니까?

  11. 11

    배치 스크립트의 파일에 명령 출력을 어떻게 인쇄 할 수 있습니까?

  12. 12

    c 명령 system ()의 출력이 콘솔에 표시되지 않고 파일로 이동할 수 있습니까?

  13. 13

    내 명령의 출력을 어떻게 필터링 할 수 있습니까? (Powershell)

  14. 14

    이전 명령의 출력을 어떻게 사용할 수 있습니까?

  15. 15

    이전 명령의 출력을 어떻게 사용할 수 있습니까?

  16. 16

    R의 플롯에서 INF 값을 어떻게 표시 할 수 있습니까?

  17. 17

    R의 플롯에서 INF 값을 어떻게 표시 할 수 있습니까?

  18. 18

    'ls -l'명령에서 '전체'출력을 어떻게 제어 할 수 있습니까?

  19. 19

    python sh 모듈을 사용하여 실행중인 명령의 출력을 어떻게 표시 할 수 있습니까?

  20. 20

    Windows "실행"명령에서 명령을 시작할 때 열리는 창을 어떻게 사용자 정의 할 수 있습니까?

  21. 21

    마지막 명령에서 출력되는 파이썬 배열을 어떻게 계산할 수 있습니까?

  22. 22

    루트가 아닌 Ubuntu 서버에서 시작할 때 명령을 어떻게 실행할 수 있습니까?

  23. 23

    vim에서 bash_history의 명령을 어떻게 호출 할 수 있습니까?

  24. 24

    하나의 명령 줄에 &가있는 여러 명령을 어떻게 실행할 수 있습니까?

  25. 25

    하나의 명령 줄에 &가있는 여러 명령을 어떻게 실행할 수 있습니까?

  26. 26

    mysql에서 시간 형식을 어떻게 설정할 수 있습니까?

  27. 27

    인터페이스 파일에서 펑터의 출력 서명을 어떻게 사용할 수 있습니까?

  28. 28

    가변 길이 명령 출력을 어떻게 할당 할 수 있습니까?

  29. 29

    C 시스템 / popen 명령에서 다른 C ++ 프로그램으로 어떻게 계속 입력 할 수 있습니까?

뜨겁다태그

보관