代码调试心得

一.说明

之前做项目的时候,突然需要用到了视图,所以就想用代码生成器生成Model还有逻辑处理层,因为师兄的代码生成器不可以单个表生成代码,所以之前就在自己本机上用一个临时的数据库使用代码生成器生成代码,很不幸,视图的生成需要原来数据库有相应的表存在,所以自己就觉得去修改一下那个代码生成器。

ps:这篇文章也是很久之前就写了的,一直没有时间整理,现在就大概整理下,虽然还是比较乱。

 

二.调试过程

但是那个代码生成器自己是没有接触过的,所以只好由生成代码的那个按钮入手,也就是clip_image002这个。

根据这些代码:

clip_image004

可以大约知道tableList是需要生成的表的集合,所以接下来就需要观察FillGenItem这个函数究竟做了些什么,经过调试知道:

clip_image006

GillGenItem函数的传入参数是数据库的名字,问题浮出水面了,这里给的参数只有数据库的名字,根本与之前clip_image008这些勾选表的操作毫无关系!

三.解决问题主要可以分成两个步骤:

1.首先需要改的就是函数的参数可以满足我们选的参数都包括了:

            所以现在参数改为集合clip_image010,因为之前的是吧所有的表的名字都搜索出来,所以现在就需要根据方法的这个参数进行筛选,把参数不包含的给去除,所以加入如图的一个for循环clip_image012

2.勾选的时候,可以获取正确的值,而且好要保证数据库的名字在第一位:

所以就找触发勾选的事件:

clip_image014

可以看到这里只有把数据库加进去全局变量GenerateList,所以我加多了一段

if (node.ToolTipText == "Table")

if (node.Checked)

{

      if(!GenerateList.Contains(node.Text))

      GenerateList.Add(node.Text);

}

else

{

if (GenerateList.Contains(node.Text))

GenerateList.Remove(node.Text);

}

}

TreeSelect(node);

这样的,把表的名字也加进去,并且吧递归函数放到下面,因为在调试的时候,因为点击checkbox的顺序不一样会造成找到很多表名也不一样,所以加入的clip_image016在集合GenerateList不包含的情况下才增加,以及在集合包含的情况下才去除,这样就大大减少了出错的几率

2.2但是还有一件需要解决的是,就是需要把数据库的名字放到第一,那么我如何知道我有勾选了数据库了呢?我自己的答案是在增加一个为string类型的字段,默认为空字符串,在勾选的时候为数据库的时候为DbName字段赋值clip_image018

所以这样我们就可以知道数据库的名字了,所以现在需要增加一个函数,用于确保数据库的名字在第一位

clip_image020这样一个函数就OK~~~

代码大概就修改到这里了,这样可以完成生成部分表代码了

转载于:https://www.cnblogs.com/jeanlyn/archive/2012/08/19/2646532.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值