- 浏览: 121773 次
- 性别:
- 来自: 南宁
文章分类
最新评论
今天同事问我说如何删除树结构的自联表,要求是子树是无限的未知的。于是乎简单的方法实现了下。改天再优化过。如果有好的意见请各位看官给个意见,小的将感激不尽。不废话上代码上图
主要方法:(c# java的方法类似,函数格式不一样而已)
Function 级联删除(ByVal str_表名 As String, ByVal str_主键字段 As String, ByVal str_父字段标记 As String, ByVal str_主键值 As String) As Boolean
Dim idslip = 获取ID串(str_表名, str_主键字段, str_父字段标记, str_主键值)
Dim sql = ""
Dim isok As Boolean
Dim idarry = idslip.Split(",")
sql = "delete " + str_表名 + " Where 1>0 and " + str_父字段标记 + "='" + str_主键值 + "' or " + str_主键字段 + "='" + str_主键值 + "'"
If idslip.Length > 0 Then
For i = 0 To idarry.Length - 1
System.Web.HttpContext.Current.Response.Write("当前串是:" + idslip + "主键是:" + str_主键值 + "<br>")
isok = delete(sql)
级联删除(str_表名, str_主键字段, str_父字段标记, idarry(i))
Next
Return isok
End If
Return True
End Function
'获取某个记录下的所有下级记录ID
Function 获取ID串(ByVal str_表名 As String, ByVal str_主键字段 As String, ByVal str_父字段标记 As String, ByVal str_主键值 As String) As String
Dim DataConn As New SqlConnection(strConn)
Dim strSQL As String
Dim strIDslipt = ""
strSQL = "SELECT " + str_主键字段 + " FROM " + str_表名 + " Where 1>0 and " + str_父字段标记 + "='" + str_主键值 + "'"
Dim DataAdapter As New SqlDataAdapter(strSQL, DataConn)
Dim DataSet As New DataSet
Try
DataSet.Clear()
DataAdapter.Fill(DataSet)
If DataSet.Tables(0).Rows.Count <> 0 Then
For i = 0 To DataSet.Tables(0).Rows.Count - 1
strIDslipt &= DataSet.Tables(0).Rows(i)(str_主键字段) + ","
Next
End If
Catch err As Exception
Return ""
Finally
DataConn.Close()
End Try
DataSet.Dispose()
Return strIDslipt
End Function
'删除方法
Function delete(ByVal sql As String) As Boolean
System.Web.HttpContext.Current.Response.Write(sql + "<br>")
Dim sqlconn As New SqlConnection(strConn)
Try
Dim cmdTable As SqlCommand = New SqlCommand(sql, sqlconn)
cmdTable.CommandType = CommandType.Text
sqlconn.Open()
cmdTable.ExecuteNonQuery()
Return True
Catch
Return False
Finally
sqlconn.Close()
End Try
End Function
附件是表的数据和结构
测试页面的代码是:
Public Class index1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub Btn_delete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Btn_delete.Click
Dim obj = New AutoCommon.数据操作()
obj.级联删除("字典_行政区划表", "区划代码", "父级代码", TxB_值.Text.Trim)
End Sub
End Class
主要方法:(c# java的方法类似,函数格式不一样而已)
Function 级联删除(ByVal str_表名 As String, ByVal str_主键字段 As String, ByVal str_父字段标记 As String, ByVal str_主键值 As String) As Boolean
Dim idslip = 获取ID串(str_表名, str_主键字段, str_父字段标记, str_主键值)
Dim sql = ""
Dim isok As Boolean
Dim idarry = idslip.Split(",")
sql = "delete " + str_表名 + " Where 1>0 and " + str_父字段标记 + "='" + str_主键值 + "' or " + str_主键字段 + "='" + str_主键值 + "'"
If idslip.Length > 0 Then
For i = 0 To idarry.Length - 1
System.Web.HttpContext.Current.Response.Write("当前串是:" + idslip + "主键是:" + str_主键值 + "<br>")
isok = delete(sql)
级联删除(str_表名, str_主键字段, str_父字段标记, idarry(i))
Next
Return isok
End If
Return True
End Function
'获取某个记录下的所有下级记录ID
Function 获取ID串(ByVal str_表名 As String, ByVal str_主键字段 As String, ByVal str_父字段标记 As String, ByVal str_主键值 As String) As String
Dim DataConn As New SqlConnection(strConn)
Dim strSQL As String
Dim strIDslipt = ""
strSQL = "SELECT " + str_主键字段 + " FROM " + str_表名 + " Where 1>0 and " + str_父字段标记 + "='" + str_主键值 + "'"
Dim DataAdapter As New SqlDataAdapter(strSQL, DataConn)
Dim DataSet As New DataSet
Try
DataSet.Clear()
DataAdapter.Fill(DataSet)
If DataSet.Tables(0).Rows.Count <> 0 Then
For i = 0 To DataSet.Tables(0).Rows.Count - 1
strIDslipt &= DataSet.Tables(0).Rows(i)(str_主键字段) + ","
Next
End If
Catch err As Exception
Return ""
Finally
DataConn.Close()
End Try
DataSet.Dispose()
Return strIDslipt
End Function
'删除方法
Function delete(ByVal sql As String) As Boolean
System.Web.HttpContext.Current.Response.Write(sql + "<br>")
Dim sqlconn As New SqlConnection(strConn)
Try
Dim cmdTable As SqlCommand = New SqlCommand(sql, sqlconn)
cmdTable.CommandType = CommandType.Text
sqlconn.Open()
cmdTable.ExecuteNonQuery()
Return True
Catch
Return False
Finally
sqlconn.Close()
End Try
End Function
附件是表的数据和结构
测试页面的代码是:
Public Class index1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub Btn_delete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Btn_delete.Click
Dim obj = New AutoCommon.数据操作()
obj.级联删除("字典_行政区划表", "区划代码", "父级代码", TxB_值.Text.Trim)
End Sub
End Class
发表评论
-
c# winform中当是用了splitContainer 使用回车代替tab按键的好方法
2013-05-29 13:53 828在窗体内重写方法 protected override boo ... -
v6 常用数据操做 VB数据库记录集查询四种方法
2012-02-26 15:09 1158在VB中进行数据库记录的查询操作,必需根据打开数据库的 ... -
图片大小计算
2011-09-18 02:14 2197一直为图片大小计算所吸引,近日搜索资料得知,与大家分享。 ... -
request 操作大全
2011-06-14 11:09 922using System; using System.Web; ... -
。net操作各类时间段获取当前月的1号和月尾
2011-06-09 16:58 1862DateTime dt = DateTime.Now; // ... -
c#连接各类数据库大全
2011-06-01 17:10 1065C#连接SQL数据库 中国 ... -
。net 绑定日期格式化处理
2011-05-09 12:08 844日期和时间的格式化处 ... -
超级简洁的.net防止重复提交数据的处理方法仅仅1行代码
2011-05-09 11:47 748Response.Redirect(Request.Raw ... -
软件设计工作 2010年终总结
2011-02-14 10:46 1059年终总结 自2010年09月参加工作至今,短短一 ... -
LoadRunner 测试实例
2011-01-30 09:28 1894LoadRunner 是一种预测系 ... -
gridview自定义分页样式
2011-01-13 17:13 1266gridview自定义分页样式 2009年12月12日 星期 ... -
GridView分页模版
2011-01-13 17:12 927<PagerTemplate> ... -
.net DateTable的用法
2011-01-13 14:22 841SqlConnection con = new SqlCo ... -
cs vb 链接webconfig的 链接字符串
2011-01-12 22:39 8491.如果这个<add....... />在< ... -
vb.net 生成静态页面列表分页
2010-12-20 15:03 1060Sub test() Dim t As li ... -
.net 的hook 设计
2010-12-09 23:38 1097今天,有个同事问我, ... -
.net上传图片生成缩略图,加文字水印和图片水印
2010-12-09 20:53 1573引用页的代码: Imports dll图片水印缩略图 ... -
Directory 常用的成员和方法
2010-12-08 11:06 718GetLogicalDrives 检索此计算机上格式为“&l ... -
心理辅导是没有用的!
2010-07-21 13:06 668从韩寒这句话,你看出几层意思?“心理辅导是没有用的,当我看见我 ... -
五险一金的使用方法
2010-07-08 20:14 935[网页] 五险一金的使用 ...
相关推荐
在.NET框架中,级联(Cascading)是一种常见的数据绑定技术,用于创建相互关联的控件,如树形控件和下拉列表。这种技术能够帮助用户在多个选择之间建立逻辑关系,使得一个控件的选择会影响另一个控件的显示内容。在...
在级联动态树的应用中,这些语句可能需要递归地处理整个树结构,以确保所有相关节点的状态正确反映在数据库中。例如,一个典型的SELECT语句可能用于获取指定节点及其所有子节点的数据,而INSERT语句则用于在树中添加...
删除分类则要考虑其子分类,通常会进行级联删除。 在实际开发中,"hyclass"可能是一个项目文件夹或数据库表名,包含了实现上述功能的代码文件或数据。例如,可能包含.aspx(表现层)文件、.cs(业务逻辑层)文件、....
- 数据结构:为了存储无限层级的数据,可能需要使用自引用的表结构,或者使用树形结构的数据模型。 - 动态加载:由于数据层级可能是无限的,所以不能一次性加载所有数据。而是需要在用户展开下拉菜单时,动态加载...
1. **无限级联**:在数据结构设计中,无限级联通常涉及到自引用或者循环引用的数据模型,例如一个类别可以有多个子类别,每个子类别也可以有子类别,形成无限深的层级。在数据库中,这可能通过递归关系或树形结构来...
- **实例020:以树形显示的程序界面**:适用于文件浏览器或目录结构展示,便于用户浏览和管理复杂的数据结构。 此外,文件中还涉及了各种窗体设计技巧,如非矩形窗体、动态按钮窗体、字体形状窗体等,以及一些高级...
5 实例006 菜级联菜单 7 1.2 工具栏设计 7 实例007 带背景的工具栏 7 实例008 浮动工具栏 8 实例009 带下拉菜单的工具栏 9 实例010 具有提示功能的工具栏 9 1.3 状态栏设计 10...
- **级联样式表(CSS)**:CSS用于控制XML文档的呈现方式,使内容与显示分离。 - **可扩展样式表(XSL)**:XSL包括XSLT(用于转换XML文档)、XPath(用于定位XML文档中的元素)和XSL-FO(用于格式化输出)。 #### 三、...
- 二叉树是一种特殊的树形数据结构,每个节点最多有两个子节点。 53. **Binary Function (双参函数):** - 双参函数是指接受两个参数的函数。 54. **Binary Large Object (二进制大对象):** - 二进制大对象是指...
在Access中,为了实现删除主表中的记录时同时删除子表中与之相关的记录这一操作,需要设置参照完整性约束,具体可以通过设置级联删除操作来实现。 #### 18. 硬盘容量单位 - **知识点说明**:硬盘是计算机中用于...
同时,可以通过配置文件进行DDL操作,例如创建、修改或删除数据库表结构。 6. **处理极大的数据集** 对于大规模数据的处理,iBATIS提供了分页查询、流式处理等技术,以减少内存占用并提高性能。例如,通过使用`...
**级联删除**:当删除主记录时自动删除相关记录的过程。 #### Cascading Update **级联更新**:当更新主记录时自动更新相关记录的过程。 #### Casting **类型转换**:将一种数据类型转换为另一种数据类型的过程。 ...
实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...
实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...
实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...
实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...