更新:我想我想通了。任何额外的建议表示赞赏。
我已连接到我的数据库,但现在我希望能够使用该数据。我要填充与项目(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();
吗?
帮助赞赏,将根据需要进行编辑。
答案 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;
}
}