2013-02-03 8 views
0

C# 코드 : // 여기서 테이블에 값을 삽입하려고합니다.명령 실행 중 치명적인 오류가 발생했습니다.

case true: 
    Connection.Connect(); 
    int fk_pic = IdPic(); 
    string insertWork = "INSERT INTO work (fk_id_pic, fk_login, university, lesson, name, info, date_work, price) VALUES (@fk_pic, @fk_login, @university, @lesson, @name, @info, @date_work, @price); Allow User Variables = true;"; 
    MySqlCommand work = new MySqlCommand(insertWork, Connection.Connect()); 
    work.Parameters.AddWithValue("@fk_pic", fk_pic); 
    work.Parameters.AddWithValue("@fk_login", Program.form1.login); 
    work.Parameters.AddWithValue("@university", textBox1.Text); 
    work.Parameters.AddWithValue("@lesson", textBox2.Text); 
    work.Parameters.AddWithValue("@name", textBox3.Text); 
    work.Parameters.AddWithValue("@info", richTextBox1.Text); 
    work.Parameters.AddWithValue("@date_work", DateTime.Now); 
    work.Parameters.AddWithValue("@ price", textBox4.Text); 
    work.ExecuteNonQuery(); 
    Connection.Disconnect(); 
    break; 

SQL 쿼리 :

CREATE TABLE pic 
( 
    id_pic INTEGER UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id of image', 
    caption CHAR(45) NOT NULL COMMENT 'the name of image', 
    who_add CHAR(30) NOT NULL COMMENT 'who add this image', 
    img LONGBLOB NOT NULL, 
    CONSTRAINT pkId_pic PRIMARY KEY(id_pic) 
) 
COMMENT 'Table for hosting images'; 

무엇을 해야할지하지 마십시오. 응답 대기 중)

+1

무엇이 오류입니까? –

+0

예외 메시지와 같은 오류 세부 정보를 게시 할 수 있습니까? –

+0

"work.Parameters.AddWithValue ("@ price ", textBox4.Text);" - "@"다음에 공백이 없어야합니다. –

답변

0

"name"이라는 열 또는 변수의 이름을 변경하십시오.

일반적으로 이름/이름은 예약어입니다.

이 문제 일 수 있습니다.

-1

MySQL의 .NET 커넥터의 매개 변수 식별자가 기억 ? 및 더 많은 같은 varchar 필드를 소리 그 필드에 char 사용하는 것이 내가 발견 SQL 코드를 보면되지 @

임의의 코멘트

. 컬럼을 char로 정의하면 테이블에 넣은 모든 항목에 대해 정의 된 공간을 예약합니다.

예 : myvalue 열에 당신 만 프랑수아 "a"또는 "안녕하세요 세계"는 디스크에 255 개 문자 문자열의 공간을 예약 할 경우

create table test (
    myvalue char(255) 
) 

상관없이. 그냥 염두에 두십시오.

관련 문제