C# sqlexception在c中未处理

C# sqlexception在c中未处理,c#,C#,我不知道为什么,但当我想插入图像和保存,它将是由SQLException未处理的错误 namespace Project { class Connection { private SqlConnection con; private string connectString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Database1

我不知道为什么,但当我想插入图像和保存,它将是由SQLException未处理的错误

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
        }
    }
}
插入或更新记录时需要调用cmd.ExecuteNonQuery,以选择使用cmd.ExecuteReader的数据

因此,改变这一行:

read = cmd.ExecuteReader(); 
为此:

int NoOfRowsInserted = cmd.ExecuteNonQuery();
详情请参阅


您还可以看到,执行查询的实际代码不在try/catch子句的范围内。@aevitas那么我应该如何处理这个ExecuteReader?有点被这个错误搞糊涂了你在执行什么查询?@EhsanSajjad con.executeUpdateINSERT到MsProduct值“+id+”、“+name+”、“+stock+”、“+prodPrice+”、“+image+”;