SQL语句作为列表框VB.NET的数据源

时间:2013-12-23 20:48:49

标签: sql database vb.net listbox

好的,所以我得到了一个列表框,我将显示成员等同于“ID”

我填充数据集,如果我对数据集进行更改,列表框也会更改。

我正在用这种dataAdapter填充我的数据集:

KamersDataAdapter =新的SqlDataAdapter(“SELECT ID FROM roomsTable”,ConnectionString)

到目前为止一切顺利。

如果我能做出一个好句子那就太酷了所以用户可以在列表框中读取一些不错的东西,然后只读取数据库项目。所以我这样做了:

New SqlDataAdapter("SELECT *, convert(varchar,convert(date,StartDatum),103) +' - ' + convert(varchar,convert(date,EindDatum),103) + ': room ' + convert(varchar,KamerNummer) AS combinatie FROM VerhuringenTable", ConnectionString)

然后我把它放到了Combinatie(dutch for combination)而不是把显示成员放到ID上。

现在,如果我第一次填充我的数据集,一切都会好起来的。然后我明白了:

18/01/2014-30/05/2014:room 103

但现在当我添加一个新房间。房间不想出现在我的列表框中。 换句话说...我的数据集没有更新或我的列表框无法处理此查询

我知道这与sql语句有关,因为当我选择ID时,我的列表框更新正常。

任何人都知道最新消息吗?

thanx

FOSA

1 个答案:

答案 0 :(得分:1)

您的列combinatie是在从数据库中提取数据时计算的。之后,数据集不包含可在运行时应用的任何规则,以便从新房间的数据生成combinatie列。 您应该手动将此字段的信息添加到数据集表中,
可能当您添加房间的预订时

 Dim newRow = ds.Tables("room").NewRow()
 newRow("StartDatum") = DateTime.Today
 newRow("EindDatum") = DateTime.Today.AddDays(7)
 newRow("KamerNummer") = roomNumber
 ....
 newRow("combinatie") = DateTime.Today.ToShortDateString() & "-" & _ 
                        DateTime.Today.AddDays(7).ToShortDateString() & _ 
                        ":room " & roomNumber.ToString()
ds.Tables("room").Rows.Add(newRow)