2016-12-04 1 views
0

안녕하세요, 저는 거의 데이터베이스 프로젝트를위한 CRUD 프로젝트를 완료했습니다. 난 그냥 마무리하고 삭제 기능을 완료하려고.삭제 된 쿼리 예외 삭제 C#

query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox); 

My variable mDeleteTextBox는 원하는 값으로 채워집니다. 내 검색어에 어떤 문제가 있습니까?

오류 메시지

An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll 

Additional information: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.TextBox, Text: 6' at line 1 
+0

가능한 복제 [I 열 이름으로 사용 예약어를 탈출 어떻게해야합니까? MySQL의/테이블 만들기] (http://stackoverflow.com/questions/2889871/how-do-i-escape-reserved-words-used-as-column-names-mysql-create-table) – Eris

+0

또한, 귀하의'{ 0}'에 따옴표가 필요하거나 더 나은 방법은 매개 변수화 된 쿼리를 사용하는 것입니다. http : //stackoverflow.com/questions/652978/parameterized-query-for-mysql-with-c-sharp – Eris

+1

또한 mDeleteTextBox 유형 문자열입니다. 어쩌면 당신은 mDeleteTextBox.Text를 쓰고 싶습니까? – Nigrimmist

답변

4

귀하의 추가 정보를 모두 말한다 : 당신은 데이터가 텍스트 상자 자체의 내용을 (액세스하기 위해 쿼리에 대한 매개 변수로 mTextBox를 전달하려고 노력하지만,하고 쿼리를 완료하는 데 사용하려는 경우), 텍스트 상자의 Text 속성에 액세스해야합니다.

그래서, 당신의 코드 :

query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox); 

되었다
query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox.Text); 
+0

더 나은 대답은 OP를 매개 변수 사용법을 가르쳐 줄 것이며 결코 이와 같은 SQL 문을 빌드하지 마십시오. 이것은 SQL 삽입을 위해 열려 있습니다. – GuidoG