当前位置:编程学习 > C#/ASP.NET >>

求高手,帮我完善两行代码(关于判断单据是否审核)

求高手,帮我完善两行代码(关于判断单据是否审核)
以下是判断单据是否审核的代码,是一个函数,

1.我将审核状体设成3种,未知,已审核,未审核,其中“未知”是针对数据库查询失败的情况(比如网络故障,此时sql操作失败,无法得到是否审核的正确状态)

2.我的判断一句合理吗?我判断“审核人”字段,为空字串表示未审核,有字符表示审核过了。

3.我的代码可以吗,又不严谨之处吗,帮我完善一下。


        //判断是否审核
        public int Is_Shenhe(string strywdh,string strdddh)
        {
            string strshr = "";     //审核人编码
            int iresult = 0;        //0-未知,1-审核了,-1-没有审核
            strsql = "select isnull(审核人,'') as 审核人 from scdd_调度单_Master ";
            strsql += "where 业务单号='" +strywdh +"' and 调度单号='" + strdddh + "'";

            try
            {
                command = new SqlCommand(strsql, mydb.conn);
                strshr = (string)command.ExecuteScalar();
                if (strshr == "")
                    iresult = -1;   //未审核
                else
                    iresult = 1;    //已审核
            }
            catch
            {
                iresult = 0;    //执行sql操作失败时,令状态为“未知”
            }

            return iresult;
        }
--------------------编程问答-------------------- 既然有 未知,已审核,未审核 三种状态 那就再表里添加一列 专门存放审核状态 
0-未审核 1-审核 2-未知
0 1 从C#编码角度来说 0为假 false 1为真 true
字符串对比不注意的话会有很多问题 还是数字对比来得简单 --------------------编程问答--------------------
引用 1 楼 libolei 的回复:
既然有 未知,已审核,未审核 三种状态 那就再表里添加一列 专门存放审核状态 
0-未审核 1-审核 2-未知
0 1 从C#编码角度来说 0为假 false 1为真 true
字符串对比不注意的话会有很多问题 还是数字对比来得简单


一般的库里面有审核状态或是啥的都会用一个字段去表示,里面的值去读枚举 --------------------编程问答-------------------- --------------------编程问答-------------------- 结分的 --------------------编程问答--------------------
引用 1 楼 libolei 的回复:
既然有 未知,已审核,未审核 三种状态 那就再表里添加一列 专门存放审核状态 
0-未审核 1-审核 2-未知
0 1 从C#编码角度来说 0为假 false 1为真 true
字符串对比不注意的话会有很多问题 还是数字对比来得简单

没有明白你的意思? --------------------编程问答-------------------- 不知道你的strywdh或者strdddh 有一个“'”(单引号)的时候会不会报错!
^_^^_^^_^ --------------------编程问答-------------------- 对1楼回答的补充

肯定要增加一个状态字段,另增加一个用来保存登入编辑时候的状态字段,用来中途出错
或其它原因出错能恢复,还有一种“编辑中”的状态,当有人编辑的时候,其它人只能是只读的状态
每次在编辑前必须到数据库读取最新字段,判断是否有更改,
保存的时候也需要比对是否可以更新,
如果想更严谨些,可以增加一个“timestamp”类型的字段,是用来记录版本号,每次对数据库有更新,
此字段便会增加一个版本。 --------------------编程问答--------------------
引用 1 楼 libolei 的回复:
既然有 未知,已审核,未审核 三种状态 那就再表里添加一列 专门存放审核状态 
0-未审核 1-审核 2-未知
0 1 从C#编码角度来说 0为假 false 1为真 true
字符串对比不注意的话会有很多问题 还是数字对比来得简单

你理解错误,至存放审核状态,就用“审核人”字段表示,为空表示未审核,不为空表示已审核。
我说的3种状态,是指,判断“审核人”字段时,如果网络断线,就会判断不成功,此时就是第3种状态(未知状态)
不可能在表里增加一个字段存这3个状态呀,一点用也没有呀。 --------------------编程问答--------------------
引用 6 楼 wuwo333 的回复:
不知道你的strywdh或者strdddh 有一个“'”(单引号)的时候会不会报错!
^_^^_^^_^


这两个是单号,使系统自动生产的,不会有单引号的。 --------------------编程问答-------------------- 安全起见 转化下如果有单引号就去掉 --------------------编程问答--------------------
引用 1 楼 libolei 的回复:
既然有 未知,已审核,未审核 三种状态 那就再表里添加一列 专门存放审核状态 
0-未审核 1-审核 2-未知
0 1 从C#编码角度来说 0为假 false 1为真 true
字符串对比不注意的话会有很多问题 还是数字对比来得简单

然后在进行操作之前判断其状态就可以了!
(将数据读取出来,判断状态是否为true ,如果是,那么就可以操作;否则就不可以操作!)
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,