首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

Vb.net初学者问几个简单的有关问题

2012-01-15 
Vb.net菜鸟问几个简单的问题第一个问题:俺的datagridview的datasource是与dataset.table(0)绑定的,俺想实

Vb.net菜鸟问几个简单的问题
第一个问题:
俺的datagridview的datasource是与dataset.table(0)绑定的,俺想实现增删改保存四个按钮来对datagridview操作。应该是通过操作datatable来实现吧,
增加行:dataset.Tables(0).Rows.Add(row)
修改行:直接修改就好
删除行:dataset.Tables(0).Rows(intRow).Delete()
dataset.Tables(0).AcceptChanges()
Private Sub DataGridview1_CellMouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles Grid1.CellMouseUp
intRow = e.RowIndex
End Sub

无论你是增删改都好,最后只要通过一个保存按钮来把所做的改动全部提交给数据库。
保存按钮:Dim scb As OleDbCommandBuilder = New OleDbCommandBuilder(datapter)
datapter.Update(dataset, table(0))
  datapter.AcceptChanges()

现在的问题就是删除的行不能更新给数据库啊!重新打开还是没删除到!请各位老鸟帮帮忙啊~俺不想用sql命令啊~俺想直接操作datatable。或者各位有更好的方案不妨介绍一下啊!


第二个问题:哪位老大有较好的treeview绑定数据库代码?甭从csdn粘贴过来了,俺把整个论坛都翻遍了,都不实用。

第三个问题:哪位老大会做数据菜单? Contextmenu通过数据库分几个层次读取出来,呵呵~


唉~老是问问题,没分了,但俺对你们的感激之情不是用分可以衡量的,先谢谢各位了!!!


[解决办法]
几个问题都不简单啊,回答起来很累啊。友情支持一下吧
[解决办法]
貌似 第一个问题 不错啊。。

楼主试试 单独做个按钮 ,看看可以删除不
[解决办法]
我再回答第三个问题吧(只是简单示例) 

VB.NET code
    Friend WithEvents ContextMenu1 As New System.Windows.Forms.ContextMenu    '加载菜单    Private Sub LoadMenuItem()        '//构建一个简单的层次表结构,菜单按此结构加载结构如下:        'AA        '   AA1        '   AA2        'BB        '(如结构层次不固定,则自已用递归加去加载,此处只是简单示例)        Dim dt As New DataTable        dt.Columns.Add("fldParent", GetType(Integer))        dt.Columns.Add("fldId", GetType(Integer))        dt.Columns.Add("fldmenuText", GetType(String))        dt.Rows.Add(New Object() {DBNull.Value, 1, "AA"})        dt.Rows.Add(New Object() {DBNull.Value, 2, "BB"})        dt.Rows.Add(New Object() {1, 3, "AA1"})        dt.Rows.Add(New Object() {1, 4, "AA2"})        Dim mi1 As MenuItem        Dim mi2 As MenuItem        For Each dr As DataRow In dt.Select("fldParent IS NULL")            '第一层的菜单            mi1 = New MenuItem(dr("fldmenuText"))            Me.ContextMenu1.MenuItems.Add(mi1)            For Each row As DataRow In dt.Select("fldParent=" & dr("fldId"))                '第二的菜单                mi2 = New MenuItem(dr("fldmenuText"))                '//添加子菜单                mi1.MenuItems.Add(mi2)            Next            '如果菜单层次非固定,则递归添加            'SubAdd(dt, dr("fldId"), mi1)        Next    End Sub    '递归添加方法    Private Sub AddSubMenuItem(ByVal dt As DataTable, ByVal parentId As Integer, ByVal parentMenuItem As MenuItem)        Dim mi As MenuItem        For Each row As DataRow In dt.Select("fldParent=" & parentId)            '第二的菜单            mi = New MenuItem(row("fldmenuText"))            '//添加子菜单            parentMenuItem.MenuItems.Add(mi)            AddSubMenuItem(dt, row("fldId"), mi)        Next    End Sub
[解决办法]
看来不太容易,呵呵,但帮您顶下吧
[解决办法]
以下VB.NET CODE
第一个问题:
删除换成如下试一下
试一下 Me.BindingContext(Me.DataGridView1.DataSource, Me.DataGridView1.DataMember).RemoveAt(intRow)

Update完后不用 datapter.AcceptChanges()

Dim scb As OleDbCommandBuilder = New OleDbCommandBuilder(datapter)
datapter.Update(dataset, table(0)) 

第二个问题和第三个问题:感觉你是在问无限的大树怎么做吧呵~~(自已新取的名字)二个原理都是一样.自已搜索无限树形就可以解决这二个问题了.

热点排行