
正文
数据绑定vb.net 数据绑定原理
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
使用VB.NET的五个技巧之处理数据行
处理数据行(DataRow)
Windows窗体中的数据绑定列表框和组合框很节省时间 典型的代码如下(假定已经建立了SqlDataAdapter或者其它部件获取数据)
Dim ds As New DataSet() SqlDataAdapter Fill(ds Customers ) ListBox DataSource = ds Tables( Customers ) ListBox DisplayMember = CompanyName ListBox ValueMember = CustomerID
在这种情况下 代码使用Northwind数据库的顾客记录工作 DisplayMember属性设置为你希望用户在列表框中看到的记录字段 它是customers表的CompanyName 通常ValueMember属性设置为数据表中的一个键字段 对于customer来说是CustomerID 一旦用户选择了列表框中的一行 很容易使用列表框的SelectedValue属性获得键字段
MsgBox(ListBox SelectedValue)
但是有可能需要一个与被选择项相关的整个数据行对象的引用 例如 如果被选择的行需要被删除 就不知道键了 你需要一个数据行的引用以使用Delete方法
典型的Visual Basic开发者通常这样想 我已经得到了该行的键了 我将编写一些逻辑来查找使用该键的行 这样可以实现 但是有更好的实现方法 可以使用一行代码获取与列表框中选项关联的数据行
Dim dr As DataRow = CType(ListBox SelectedItem DataRowView) Row
通常该逻辑不会凭直觉出现 即使对经验丰富的开发者 为了解释这是怎样实现的 我把上面的一行拆成几行 下面的代码与上面代码的功能相同
Dim drv As DataRowView drv = CType(ListBox SelectedItem DataRowView) Dim dr As DataRow dr = drv Row
DataRowView类是数据行的包装 它被多个Windows窗体控件使用 它使得显示与控件中的数据行相关的数据更加容易 当列表框被数据绑定到数据表时(假定列表框中的有些行当前被选定了) 列表框的SelectedItem属性保存了一个DataRowView对象
这意味着我们能把列表框的SelectedItem属性转换到DataRowView对象 这就是上面代码中的第二行实现的 接着DataRowView暴露一个Row属性 它指向被包装的数据行 上面的代码声明了一个数据行并设置了Row属性
转换对象的类型以访问它的接口的技术在Visual Basic 中不是经常使用 但是在Visual Basic NET中这是经常的 有了上面的例子后 大多数有经验的开发者迅速跟上了这种技术
数据行的引用(dr)可用于用任何方式维护行 访问数据行中的任何特定字段是可行的 行中的数据可以被改变 能使数据行的Delete方法把该行标识为删除 或者从数据表的行集合中删除该行 下面的代码标识删除了一行
dr Delete()
lishixinzhi/Article/program/net/201311/12974
相关问答
Q1: vb.net 如何做到一个子窗体绑定一个数据库
加个模块,定义公共变量2个窗体都可以对数据库进行读写,每次读写之前先刷新一次,保证数据最新就行数据绑定vb.net了。
VB.NET的特点:
1.真正成为面向对象以及支持继承性的语言。
2.窗体设计器支持可视化继承,并且包含了许多新的特性,比如自动改变窗体大小、资源本地化支持、数据类工具内在支持XML数据。
3.直接建立在.NET的框架结构上,因此开发人员可以充分利用所有.NET平台特性,也可以与其数据绑定vb.net他的.NET语言交互。
4.为Windows应用程序提供了XCOPY部署,开发者不再需要为DLL的版本问题担忧。
Q2: VB.NET中怎麼用代码实现DataGridview的数据绑定?
一般来说:连接数据库这一块都做成DLL,这样方便
在配置文件app.config中加入
//m_SqlPath
存放SQL语句的XML文件
Dim
sqlHelper
As
New
SQLHelper("LotDBConnection")
Dim
sqlRead
As
New
ResourceHelper
Dim
ht
As
New
Hashtable
Dim
strSQL
As
String
Try
'设置SQL文参数
ht.Clear()
ht.Add(ColumnName.USER_ID.ToString,
Trim(Me.txtUserID.Text))
ht.Add(ColumnName.USER_NAME.ToString,
Trim(Me.txtUserName.Text))
'数据查询
strSQL
=
sqlRead.GetSQLSentence("GetUserList",
m_SqlPath,
ht)
ds
=
sqlHelper.ExecuteDataSet(strSQL)
If
ds.Tables(0).Rows.Count
=
Then
MessageBox
.Show
("数据不存在");
Else
'数据绑定
dgvUserMeisai.DataSource
=
ds.Tables(0)
End
If
Catch
ex
As
Exception
MessageBox
.Show
(ex.Message
);
Finally
sqlHelper
=
Nothing
sqlRead
=
Nothing
ht
=
Nothing
End
Try
Q3: vb.net中treeview的数据绑定
第一步:定义两个DataTable对象,并把数据库中的两个表分别读入这两个DataTable对象中;如Dt1用于存储省名表,Dt2用于存储省辖市名表。
第二步:先绑定Dt1,以循环方式向TreeView添加Node。其中,Node.index就是Dt1中id字段的值,Node.Text就是Dt1中name字段的值。
第三步:绑定Dt2,同样以循环方式向TreeView添加Node。这里稍微有点复杂,需先判断下已经存在于TreeView中的节点,如果节点的索引是3,则向这个节点下添加id为3xx的子节点。
获得当前节点的索引值的语句是:dim s as Integer = TreeView1.Nodes(i).Nodes.IndexOf(Node)
为当前节点添加子节点的语句是:TreeView1.Nodes(i).Nodes(s).Nodes.Add(Node)
最后的效果是:TreeView中有北京、上海、山东等节点,点击"山东"则会展开其下面的"济南"、"青岛"、"烟台"等子节点。
Q4: vb.net的DataGridView数据绑定
在配置文件app.config中加入
appSettings
add key="LotDBConnection" value="DATA SOURCE=数据库连接;PASSWORD=密码;PERSIST SECURITY INFO=True;USER ID=登录名"/
/appSettings
//m_SqlPath 存放SQL语句的XML文件
Dim sqlHelper As New SQLHelper("LotDBConnection")
Dim sqlRead As New ResourceHelper
Dim ht As New Hashtable
Dim strSQL As String
Try
'设置SQL文参数
ht.Clear()
ht.Add(ColumnName.USER_ID.ToString, Trim(Me.txtUserID.Text))
ht.Add(ColumnName.USER_NAME.ToString, Trim(Me.txtUserName.Text))
'数据查询
strSQL = sqlRead.GetSQLSentence("GetUserList", m_SqlPath, ht)
ds = sqlHelper.ExecuteDataSet(strSQL)
If ds.Tables(0).Rows.Count = 0 Then
MessageBox .Show ("数据不存在");
Else
'数据绑定
dgvUserMeisai.DataSource = ds.Tables(0)
End If
Catch ex As Exception
MessageBox .Show (ex.Message );
Finally
sqlHelper = Nothing
sqlRead = Nothing
ht = Nothing
End Try
关于数据绑定vb.net和数据绑定原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






