2009-05-06 11 views
1

私はjobsというテーブルを持っていますが、問題なくテーブルからデータを取得できますが、保存によって問題が発生しています。ここでは、コードとエラーは次のとおりです。ここでなぜSubSonicを使用してデータベーストランザクションを保存できないのですか?

 Job job = new Job(JobId); 

     job.Name = txtName.Text; 
     job.SimsCustCode = txtSimsCustCode.Text; 
     job.Mode = cboMode.Text; 
     job.Interval = Convert.ToInt32(nudInterval.Text); 
     job.Enabled = Convert.ToBoolean(chkEnabled.Checked); 

     job.SourceHost = txtSourceHostName.Text; 
     job.SourceType = cboSourceType.Text; 
     job.SourceUsername = txtSourceUsername.Text; 
     job.SourcePassword = txtSourcePassword.Text; 
     job.SourceDirectory = txtSourceDirectory.Text; 
     job.SourceIgnoreExtension = txtSourceIgnoreExtension.Text; 

     job.TargetHost = txtTargetHostName.Text; 
     job.TargetType = cboTargetType.Text; 
     job.TargetUsername = txtTargetUsername.Text; 
     job.TargetPassword = txtTargetPassword.Text; 
     job.TargetDirectory = txtTargetDirectory.Text; 
     job.TargetTempExtension = txtTargetTempExtension.Text; 

     job.Save(); 

は誤りです:

A first chance exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll 
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 'interval) VALUES('adf','adsf','inbound','ftp','','','','','','ftp','','','','','' at line 1 

私はそれが正常に動作し、既存のジョブを編集した場合、それが唯一の失敗新しい仕事を保存だ、明確にするため。ここで

はスキーマです:

表作成表


ジョブは、CREATE TABLE jobs
idのint(11)NOT NULL AUTO_INCREMENT、
name VARCHAR(100)NOT NULLと、
sims_cust_code varchar(10)NOT NULL、
mode VARCHAR(10)NOT NULL、
source_type VARCHAR(10)NOT NULL、
source_host VARCHAR(100)デフォルトのNULL、
source_username VARCHAR(50)デフォルトのNULL、
source_password VARCHAR(50)デフォルトのNULL、
source_directory VARCHAR(100)デフォルトのNULL、
source_ignore_extension VARCHAR(10)デフォルトのNULL、
target_type VARCHAR(10)NOT NULL、
target_host VARCHAR(100)デフォルトのNULL、
target_username VARCHAR(50)デフォルトのNULL、
target_password VARCHAR(50)デフォルトのNULL、
target_directory VARCHAR(100)デフォルトのNULL、
target_temp_extension VARCHAR(10)デフォルトのNULL、
enabled TINYINT(1)NOT NULL、
それがどのように見えるintervalのint(11)NOT NULL、
PRIMARY KEY(id
)ENGINE = InnoDBのAUTO_INCREMENT = 7 DEFAULT CHARSET = latin1の

答えて

1

値は解析されていません - SQLスキーマと生成されるSQLを見る必要があります - プロファイラを持っていますか?あなたは何が起こっているのを見ることができる何か?

IntervalはMySQLの予約語です:) - これにバグを入力できますか?私たちはそれをキャッチする必要があります...

+0

私は何を使用することをお勧めしますか? –

+0

バージョン5.0.37を超えている場合は、次のように使用できます。 http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html あなたのスキーマからは推測できます有効または間隔の値が無効です。 –

+0

アダム、それは私が思ったことですが、私がアップデートしていて、既存のレコードを持っていればうまくいきます。新しいレコードを追加しないだけです。 –

関連する問題