2014-05-24 22 views
0

我不知道爲什麼,但是當我想插入圖像並保存,它會通過的SQLException錯誤是未處理未處理(?)的SQLException是用C#

namespace Project 
{ 
    class Connection 
    { 
     private SqlConnection con; 
     private string connectString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Database1.mdf;Integrated Security=True;User Instance=True"; 

     private DataTable dTable; 
     private SqlDataAdapter adapt; 
     private SqlDataReader read; 
     private SqlCommand cmd; 

     public Connection() 
     { 
      con = new SqlConnection(connectString); 
     } 

     public DataTable executeQuery(string query) 
     { 
      try 
      { 
       if (con.State != ConnectionState.Closed) 
       { 
        con.Close(); 
       } 
      } 
      catch(Exception e) 
      { 
       MessageBox.Show("Error in database: "+e); 
      } 

      con.Open(); 

      dTable = new DataTable(); 
      adapt = new SqlDataAdapter(query, connectString); 
      adapt.Fill(dTable); 

      return dTable; 
     } 

     public void executeUpdate(string query) 
     { 
      try 
      { 
       if (con.State != ConnectionState.Closed) 
       { 
        con.Close(); 
       } 
      } 
      catch (Exception e) 
      { 
       MessageBox.Show("Error in database: " + e); 
      } 

      con.Open(); 
      cmd = con.CreateCommand(); 
      cmd.CommandText = query; 
      read = cmd.ExecuteReader(); // this is the error 
     } 
    } 
} 
+1

實際的代碼執行你的查詢在try/catch子句之外。 – aevitas

+0

@aevitas所以我應該如何處理這個ExecuteReader?有點困惑這個錯誤 – user3194066

+0

你執行什麼查詢? –

回答

0

您插入或更新記錄時需要調用cmd.ExecuteNonQuery() ,用於選擇數據cmd.ExecuteReader()被使用。

所以改變這一行:

read = cmd.ExecuteReader(); 

這樣:

int NoOfRowsInserted = cmd.ExecuteNonQuery(); 

查看詳情在MSDN

,你也可以看到這個tutorial