2011-10-30 6 views
0
public void saveImage(byte[] image, int patient_id, MySqlConnection con) 
    { 
     string sql = "select * from patient where id ="+patient_id; 
     DataSet ds = new DataSet("patient"); 
     MySqlDataAdapter dAdapter = new MySqlDataAdapter(sql, con); 
     MySqlCommandBuilder builder = new MySqlCommandBuilder(dAdapter); 
     dAdapter.Fill(ds, "patient2"); 
     try 
     { 
      ds.Tables["patient2"].Rows[0]["picture"] = image; 
      dAdapter.Update(ds, "patient2"); 

      // ds.Tables["patient2"].Rows[0].AcceptChanges(); 


      con.Close(); 
      con.Open(); 
     } 
     catch (Exception exs) 
     { 
      Console.WriteLine(exs.Message); 
     } 

    } 

このエラーを修正するにはどうすればよいですか?これが実行された後、次のクエリは実行されません。私はすでに "con.close"と "con.open"のいずれかの方法でコメントしようとしました...何らかの理由でMySQLが突然実行されました

+0

どのようなエラーが表示されますか? – SLaks

+0

具体的なエラーはありません...その次のクエリは実行されません。そのようなmysqlはただオフになりました... –

+1

なぜですか?何が起こるのですか? – SLaks

答えて

1

これは、接続を閉じてから再度開いたためです。あなたは閉じた接続を再開してはならない...実際にはInvalidOperationExceptionを投げていないのに驚いています。とにかく、あなたのメソッドがパラメータとして開いている接続を受け取った場合、それを閉じてはいけません。接続を開くコードは、接続を終了する責任があります。

+0

イメージが1.5MB以上で、LONGBLOBを使用していることがわかりました。クライアントが切断されていて、mysqlがその問題のために離れていたことがわかりました... rmeoveを開いて閉じてみましょう。後で私の投稿を編集する... –

関連する問題