将SQL数据库存储在对象中?

时间:2017-12-14 23:10:12

标签: c# database winforms listview

更新:我想我想通了。任何额外的建议表示赞赏。

我已连接到我的数据库,但现在我希望能够使用该数据。我要填充与项目(LargeIcon / SmallIcon视图仅),然后可以点击在使用SelectedItemsChanged查看它们在文本框和/或能够更新的值的项目。

ListView中

(ListView显示开始时的所有数据/项目。用户可以选择一个项目。该项目包含数据。该数据显示在适当的控件中。)

所以我创建了另一个班级" UserInfo"将它们存储起来。在我的主表格中,我已经设置了吸气剂,但我不确定如何设置吸尘器。

int row = 0;
public UserInfo userData
        {

            get
            {
                    string sqltest = data.Rows[row]["occupationId"].ToString();
                    decimal val;
                    decimal.TryParse(sqltest, out val);
                    UserInfo u = new UserInfo();
                    u.FirstName = data.Rows[row]["firstname"].ToString();
                    u.LastName = data.Rows[row]["lastname"].ToString();
                    u.UserName = data.Rows[row]["username"].ToString();
                    u.occupId = val;
                    u.ImageIndex = 0;

                return u;              
            }
            //Setter 
        }

通常情况下你会有类似thisValue = value.Text的内容 我无法data.Rows[row]["lastname"].ToString() = value.Lastname

我可以在设置器中使用string f = data.Rows[row]["firstname"].ToString();吗?

帮助赞赏,将根据需要进行编辑。

1 个答案:

答案 0 :(得分:1)

请注意,该属性取决于row的值。财产取决于其他财产并不是一种好的做法。也许你可以实现indexed property

public UserInfo UserData[int row] {
    get {
       return new UserInfo { 
          FirstName = data.Rows[row]["firstname"].ToString(),
          //Remaining fields
       }
    }
    set {
        data.Rows[row]["firstname"] = value.FirstName;
        //Remaining fildes
    }
}

此外,我假设占用ID在数据库中以十进制形式存储,并且它不允许空值。如果它允许空值,您可以这样检查:

decimal val = data.Rows[row]["occupationId"] == DBNull.Value ? 0.0m; (decimal)data.Rows[row]["occupationId"];

如果您不需要索引属性,则代码可以如下所示。

请注意DataRow fields被声明为对象。您可以为对象分配(设置)任何值。 在getter中,必须将对象强制转换为具体类型

int row = 0;
public UserInfo userData
    {

        get
        {
                UserInfo u = new UserInfo();
                u.FirstName = data.Rows[row]["firstname"].ToString();
                u.LastName = data.Rows[row]["lastname"].ToString();
                u.UserName = data.Rows[row]["username"].ToString();
                u.occupId = (double)data.Rows[row]["occupationId"];
                u.ImageIndex = 0;

            return u;              
        }
        set
        {
                data.Rows[row]["firstname"] = value.FirstName;
                data.Rows[row]["lastname"] = value.LastName;
                data.Rows[row]["username"] = value.UserName;
                data.Rows[row]["occupationId"] = value.occupId;
        }
    }