You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF已登录用户插入仅自身可见数据库数据的实现咨询

实现方案

第一步:数据库与全局配置调整

  • 给你的Module表新增一个字段CreatedUserId,字段类型和你用户表的主键类型保持一致(比如用户ID为int就设为INT类型,为GUID就设为UNIQUEIDENTIFIER),用于存储创建这条数据的用户ID。
  • 登录逻辑中新增全局存储的登录用户ID,可直接在App.xaml.cs中添加静态属性:
// App.xaml.cs中添加
public static int LoggedInUserId { get; set; }

用户登录验证通过后,将对应用户的ID赋值给App.LoggedInUserId即可。

第二步:修改插入代码

原有代码存在SQL注入风险、数据库连接未正确释放的问题,修改后代码如下,同时新增创建人ID的插入逻辑:

public bool Create(SemesterDetails details)
{
    // 使用using自动释放数据库连接,无需手动关闭
    using (SqlConnection db = new SqlConnection(AppConnect.Connection))
    {
        try
        {
            // 新增CreatedUserId字段插入,使用参数化查询避免SQL注入
            string insModule = @"INSERT INTO [Module](moduleCode,moduleName,modCredits,modHrsPerWeek,CreatedUserId)
                                 VALUES(@ModuleCode,@ModuleName,@ModuleCredits,@ModuleStudyHrs,@CreatedUserId)";

            db.Open();
            SqlCommand command = new SqlCommand(insModule, db);
            // 给参数赋值
            command.Parameters.AddWithValue("@ModuleCode", details.ModuleCode);
            command.Parameters.AddWithValue("@ModuleName", details.ModuleName);
            command.Parameters.AddWithValue("@ModuleCredits", details.ModuleCredits);
            command.Parameters.AddWithValue("@ModuleStudyHrs", details.ModuleStudyHrs);
            // 插入当前登录用户的ID
            command.Parameters.AddWithValue("@CreatedUserId", App.LoggedInUserId);

            int i = command.ExecuteNonQuery();
            return i > 0;
        }
        catch (Exception exc)
        {
            Console.WriteLine(exc.Message);            
        }
        return false;
    }
}

第三步:调整其余CRUD逻辑

所有查询、修改、删除数据的操作,都需要增加CreatedUserId的过滤条件:

  • 查询数据时,SQL语句增加WHERE CreatedUserId = @UserId,参数传入App.LoggedInUserId,确保只返回当前用户创建的数据
  • 更新、删除数据时,同样增加WHERE CreatedUserId = @UserId的条件,避免用户操作他人数据

内容的提问来源于stack exchange,提问作者Jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:45:01