2012-08-04 3 views
0

MySQL 데이터베이스에서 데이터를 검색하기 위해 쿼리를 수시로 실행하는 애플리케이션을 개발하고 있습니다. 나는 최근에 친구가 제대로 작동하는지 확인하기 위해 그것을 시도해 보라고 요청했는데, 분명히하지는 않습니다. 그것은 시작과 함께 직접 응답을 중지하기 위해 그의 applcation로 시작했습니다. 어떻게 든 디버깅해야만한다고 생각 했으므로 try..catch 문 안에서 Program.cs에 Main() 메서드를 래핑했습니다. 오류를 반환했습니다. ""SQL 구문에 오류가 있습니다. "at line 1"근처에서 사용할 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. " 이제이 오류를 가능한 두 가지 쿼리로 좁혔습니다. 여기에 그들이있다 :컴퓨터에서 SQL 구문 오류가 발생했지만 오류가 발생하지 않았습니까?

쿼리 1 :

"SELECT COUNT(*) FROM " + newsTable + " ;" 

newsTable 포함 : 뉴스

질의 2 :

"SELECT " + newsTitle + ", " + newsAuth + " FROM " + newsTable + " ORDER BY " + newsID + " DESC LIMIT " + countnews + ", " + countnews + 1 + ";" 

그들은 모두가 countnews 변수를 제외하고 문자열을 포함하는 정수를 포함합니다.

이상한 점은 내 컴퓨터에서 응용 프로그램을 실행해도이 오류가 발생하지 않는다는 것입니다. 그는 방금 MySQL을 업데이트했고 우리는 같은 .NET 프레임 워크 4에 있습니다.

아이디어가 없습니다! 사전에

감사합니다,

프레드릭

PS : 가치 모두 이러한 쿼리가 내 양식 응용 프로그램에서 main() 메소드에 있다고 할 수 있습니다 지적. 물론 그것은 InitializeComponent();

+0

데이터베이스의 스키마가 각 컴퓨터에서 동일합니까? 또한 동료의 컴퓨터에서 MySQL로부터 정확한 오류가 발생 했습니까? –

+0

문제가되는 쿼리를보고 더 자세히 범위를 좁혀 야합니다. 열과 테이블 이름이 동적 인 것처럼 보이며 (정의 된 위치는 어디입니까?) 오류가 해당 이름에 포함되어있을 가능성이 큽니다. – Mufaka

+1

"두 가지 가능한 쿼리로 범위가 좁혀졌습니다"- 예외를 올바르게 처리하면 스택 추적, 줄 번호, 오류 텍스트 등 모든 것이 있습니다. 가장 주목할만한 점은 : 당신이 실행하려고했던 정확한 쿼리. 당신이 런타임에 그것을 만들고 있기 때문에, 우리는 그것을 말할 수 없습니다 .. –

답변

0

당신이 이해하고 싶다면 : - 귀하의 2 쿼리에 대한 두 개의 저장 프로 시저를 만들기 위해 SQL 주입이 아닌 왜? 때문에 : -stored 절차는 MySQL 데이터베이스에서 테스트가 용이하고 작동하는 경우, 그것은 - 그것은이 C#을 SQL로 디버깅을 시도하는 나쁜 ID입니다 모든 곳에서 작동이 게시물 쇼와 같은 까다로운입니다 그것을 ;-)

+0

글쎄, 나는 너의 요점을 본다. 하지만이 쿼리에서 전달 된 값은 전체 .sql을 내 보낸 이후로 내 comp에서 정확히 동일합니다. – Fredrik

+0

행복하게 도와 드리겠습니다 ;-) –

0

맞아요, 그래서 모든 것을 다시 훑어보고 부족한 인간적 요인이 다시 닥쳤다는 것을 깨달았습니다. 실제 데이터를 내 보내지는 것을 잊어 버렸습니다. SQL의 진퇴 양난은 오전 3시였습니다.이 바보 같은 문제를 해결해 주셔서 감사합니다. 진심으로 감사드립니다.

프레드릭

관련 문제