我现在出现的问题是可以把数据库里的数据删除了、可是图片仍然在指定的文件夹里、我想再删除数据的同事也能连图片一起删掉【我在添加的时候有一项上传图片,图片上传之后就保存到了我指定的文件夹内了(在webUI目录下)当我要删除刚才添加的那条数据的时候,能否连文件夹里的图片(就是刚刚上传的那个图片)也一起删除了,怎么才能做到啊,我现在就能把那条数据从数据库里把它删除、那张图片仍然还在、我想在删除的时候让图片和数据一起消失,最好是能说的详细些,有代码例子最好了】

解决方案 »

  1.   

    就是当你执行删除操作的时候,File.Delete(path)  这就是删除你本地的那张图片,传入一个路径就可以了
      

  2.   

    上传的时候 把图片的地址也存到数据库里,
    然后在File.Delete(path);
    成功后再删除数据
      

  3.   


    从数据库中取出这个图片的路径。然后传入方法 删除
    /// 
    /// 删除文件和目录
    /// 
 
    public class Cleaner
 
    {
 
       /// 
       /// 删除指定目录以及该目录下所有文件
       /// 
       /// 欲删除文件或者目录的路径
  
       public static void Clean ( string dir )
 
    {
   
           CleanFiles ( dir );//第一次删除文件
   
           CleanFiles ( dir );//第二次删除目录
  
       }

 
    private static void CleanFiles( string dir)
 
    {
  
           if ( !Directory.Exists ( dir ) ) 
   
          {
              File.Delete ( dir );
              return;
   
          }
   
          else
    
    {
    
      string[] dirs = Directory.GetDirectories ( dir );
    
     string[] files = Directory.GetFiles ( dir );
    

   if ( 0 != dirs.Length )
         
     {
           
      foreach ( string subDir in dirs )
             
      {
               
       if ( null == Directory.GetFiles( subDir ) )
                
       {
                             Directory.Delete( subDir ); 
                    
        return;
                
       }
                
       else CleanFiles ( subDir );
            
      }
         
     }
       
     if ( 0 != files.Length )
              {
         
      foreach ( string file in files )
          
      {
           
       File.Delete ( file );
                   }
        
     }
        
     else Directory.Delete( dir );
       
    }
    
   }
    }参考
      

  4.   

    添加的数据和上传的文件应该有关联的。
    例如数据库某条记录,后面要有文件路径,或是有文件id 关联文件路径。
    再要删除数据的时候
    先File.Delete(path);
    再delete from tablename where id=要删除的id
      

  5.   


    我数据库里的字段有图片的路径imaPath那怎么才能从数据库里获取到我要删除的图片的路径呢,
      

  6.   

    文件通过什么和数据库数据联系,删除的时候就通过什么去删除文件贴图片很累吧,用《Csdn收音机》截图功能轻松解决!
      

  7.   

    select imaPath from 表名 where id='要删除的id'
      

  8.   

     //查询出你数据库的图片地址
                string dir=Server.MapPath(//数据库图片地址);//有必须可加上你的文件夹名字例如webUI
                if (Directory.Exists(dir))//这里判断一下文件夹是否存在。
                {
                    File.Delete(dir);//存在即可删除
                 
                }
   
      

  9.   


    using System.IO;
    public bool DeleteData(int aiID)
    {
    string Dsql,path;
    Dsql=string.Format("删除语句 where ID={0}", aiID);
                     path=GetEntity(aiID);
    if(File.Exists(path))
    {File.Delete(path)

    }
    if(ExecuteSQL(Dsql)>0)
    return true;
    else
    return false; }         /// <summary>
    /// 根据ID返回路径
    /// </summary>
    /// <param name="aiID"></param>
    /// <returns></returns>
    public string GetEntity(int aiID)
    {
    string sSql;
    sSql = string.Format("select PathName from ImageManage where ID={0}", aiID);
    DataTable dataTable = this.GetData(sSql, "ImageManage");
    if (dataTable.Rows.Count <= 0)
    {
    return null;
    }
    else
    {
    return dataTable.Rows[0]["PathName"].ToString(); 
    }
    }
    /// <summary>
            /// 执行(SQL)语句_返回数据表 
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="ATableName"></param>
            /// <returns></returns>
            public DataTable GetData(string sql, string ATableName)
            {
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                try
                {
                    SqlDataAdapter da = new SqlDataAdapter(sql, GetConnection());
                    da.Fill(ds, ATableName);
                    dt = ds.Tables[0];
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    ColseConnection();
                }
                return dt;
            }
    /// <summary>
    /// 连接数据库
    /// </summary>
    private SqlConnection conn = null;

    /// <summary>
    /// 得到一个打开的数据库连接
    /// </summary>
    /// <returns></returns>
    private SqlConnection GetConnection()
    {
    //StartService();
    if (conn == null)
    {
    conn = new SqlConnection();
    try
    {
    conn.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;//连接字符串
    conn.Open();
    }
    catch (Exception)
    {
    throw;
    }

    }
    if (conn.State == ConnectionState.Closed)
    {
    conn.Open();
    }
    return conn;
    }
    /// <summary>
    /// 执行(SQL)语句_不返回数据
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    public int ExecuteSQL(string sql)
    {
    int result = 0;
    try
    {
    SqlCommand com = new SqlCommand(sql, GetConnection());
    result = com.ExecuteNonQuery();
    }
    catch (Exception e)
    {
    throw e;
    }
    finally
    {
    ColseConnection();
    }
    return result;
    }
    /// <summary>
    /// 关闭数据库连接
    /// </summary>
    private void ColseConnection()
    {
    if (conn != null) conn.Close();
    }