程序员需要心沉下来和仔细再仔细

这两天在写一个程序,用的是access数据库。要动态创建一个数据表,并且数据表中的字段要循环创建。

一开始用的是OleDbParametr传递数据:

                    while (i <= nPostions)
                    {

                        OleDbParameter paraIndex = new OleDbParameter("@Index", System.Data.DbType.String);
                        paraIndex.DbType = System.Data.DbType.String;
                        paraIndex.Direction = System.Data.ParameterDirection.Input;
                        paraIndex.Value = "位置" + i.ToString();
                        Cmd.Parameters.Add(paraIndex);                        
                        string sCmdString4 = "Alter Table BW_Table Add Column @Index  text";                       
                        Cmd.CommandText = sCmdString4;
                        Cmd.ExecuteNonQuery();                        
                        i++;
                    } 

结果确把@Index当做字段名插入到数据库表里面了。

然后改写程序:

                    while (i <= nPostions)
                    {
                        string strIndex = "位置" + i.ToString();
                           
                        string sCmdString4 = "Alter Table BW_Table Add Column" +strIndex+ "text";                       
                        Cmd.CommandText = sCmdString4;
                        Cmd.ExecuteNonQuery();                      
                        i++;
                    }  
运行,报字段定义语法错误。然后修改

string sCmdString4 = "Alter Table BW_Table Add Column'"+strIndex+"'text";

运行,结果是所加的字段名字都有单引号,‘位置1','位置2'...

然后还是去掉单引号,在网上搜,哪里语法错误了,找了一天都没解决问题。期间,单步运行了好多次,都是同样的错误,就是不知道哪里语法错误了。

第二天早晨,实在找不出来了,就问了同事一下,同事帮我单步运行了一下,只一次,就找到错误了。

运行到 string sCmdString4 = "Alter Table BW_Table Add Column" +strIndex+ "text"这一句是发现 sCmdString4 = "Alter Table BW_Table Add Column位置1text。我想现在能发现错误了吧。少了两个空格,因此正确的语句应该是

string sCmdString4 = "Alter Table BW_Table Add Column " +strIndex+ " text";
这让我很是郁闷啊!为什么自己单步运行了一整天就没发现错误呢。现在分析看来是,一直认为是自己sql语句关键词用的不对,所以上网查啊查,查了一整天也没解决问题。

并且单步运行时根本没有仔细耐下心里查看出错的字符串到底是什么,导致错误一次一次地从自己眼皮底下溜走,浪费了大量的时间。然而同事单步运行时,确能把注意力聚焦

到问题出错的地方,很快就发现了问题。这说明自己很多时候欠缺的不是编程能力,而是心没有沉下来,解决问题的思路也有问题。血的教训!


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值