diff --git a/apps/desktop/src-tauri/src/data/repositories/material_repository.rs b/apps/desktop/src-tauri/src/data/repositories/material_repository.rs index 32dbbf6..f9e0c9c 100644 --- a/apps/desktop/src-tauri/src/data/repositories/material_repository.rs +++ b/apps/desktop/src-tauri/src/data/repositories/material_repository.rs @@ -577,7 +577,7 @@ impl MaterialRepository { id: row.get(0)?, name: row.get(1)?, path: row.get(2)?, - description: row.get(3)?, + description: row.get::<_, Option>(3)?.filter(|s| !s.is_empty()), created_at, updated_at, is_active: row.get::<_, i32>(6)? != 0, diff --git a/apps/desktop/src-tauri/src/data/repositories/project_repository.rs b/apps/desktop/src-tauri/src/data/repositories/project_repository.rs index 77018ce..e969b84 100644 --- a/apps/desktop/src-tauri/src/data/repositories/project_repository.rs +++ b/apps/desktop/src-tauri/src/data/repositories/project_repository.rs @@ -194,8 +194,9 @@ impl ProjectRepository { .map_err(|_| rusqlite::Error::InvalidColumnType(5, "updated_at".to_string(), rusqlite::types::Type::Text))? .with_timezone(&Utc); - let description: String = row.get(3)?; - let description = if description.is_empty() { None } else { Some(description) }; + // 正确处理可能为NULL的description字段 + let description: Option = row.get(3)?; + let description = description.filter(|s| !s.is_empty()); Ok(Project { id: row.get(0)?,