新手求助:一个表中两个字段对应唯一的值该怎么写。

时间:2022-04-13 15:08:59
c# code
问题也就是说,医疗账户对应一种医疗费用,只能给一种基金。意思再解释一下。比如在职的,门诊,100元。退休的,门诊

150元,在职的,住院的,1000元。这里让他设置唯一。不能再添加相同的费用标准。帮我看一下我写的这个事件哪里出问题了。

.CS页:
           void RecordEdit1_UserInputValidating(string FieldName, DataRow drRecord, RecordEdit re)
        {
            if (FieldName == "account_type,cost_type")
            {
                string strCheck = "select * from Th_MedicalCostStandard where if_remove=0 and account_type and cost_type='" + drRecord["account_type"] + drRecord["cost_type"] + "'";
                if (!FlatBase.IsNullOrEmpty(strID) & FlatBase.IsNullOrEmpty(Request["c"]))
                {
                    strCheck += " and standard_id<>" + strID;
                }
                DataTable dtCheck = myDb.GetDataTable(strCheck);
                if (dtCheck.Rows.Count > 0)
                {
                    re.Message = "“费用标准”不能重复,您输入的费用标准" + drRecord["account_type"] + drRecord["cost_type"] + "已存在";
                }
            }

           
        }
我这样写哪里不对么。为什么这个费用标准,我还是能重复。

4 个解决方案

#1


方法一,在数据库中设置这两个字段为复合主键,或者复合唯一索引,然后再INSERT时CATCH 异常处理。
方法二,仍然在你的程序中判断,但你需要断点调试一下,看看你的strCheck到底是什么语句。

#2


引用 1 楼 acmain_chm 的回复:
方法一,在数据库中设置这两个字段为复合主键,或者复合唯一索引,然后再INSERT时CATCH 异常处理。
方法二,仍然在你的程序中判断,但你需要断点调试一下,看看你的strCheck到底是什么语句。


string strCheck = "select * from Th_MedicalCostStandard where if_remove=0 and account_type and cost_type='" + drRecord["account_type"] + drRecord["cost_type"] + "'";这个不是对strCheck的定义么。

您再帮我看下,我的条件写的对不对呢。

#3


strChec中的内容是什么,贴出来

#4


引用 2 楼 zl52284588 的回复:
引用 1 楼 acmain_chm 的回复:
方法一,在数据库中设置这两个字段为复合主键,或者复合唯一索引,然后再INSERT时CATCH 异常处理。
方法二,仍然在你的程序中判断,但你需要断点调试一下,看看你的strCheck到底是什么语句。


string strCheck = "select * from Th_MedicalCostStandard where if_remo……
没有你的程序,别要怎么调试?怎么知道strCheck 的实际内容是什么? 断点调试,然后贴出实际的字符串内容,这样别不就不用花时间去猜了。

#1


方法一,在数据库中设置这两个字段为复合主键,或者复合唯一索引,然后再INSERT时CATCH 异常处理。
方法二,仍然在你的程序中判断,但你需要断点调试一下,看看你的strCheck到底是什么语句。

#2


引用 1 楼 acmain_chm 的回复:
方法一,在数据库中设置这两个字段为复合主键,或者复合唯一索引,然后再INSERT时CATCH 异常处理。
方法二,仍然在你的程序中判断,但你需要断点调试一下,看看你的strCheck到底是什么语句。


string strCheck = "select * from Th_MedicalCostStandard where if_remove=0 and account_type and cost_type='" + drRecord["account_type"] + drRecord["cost_type"] + "'";这个不是对strCheck的定义么。

您再帮我看下,我的条件写的对不对呢。

#3


strChec中的内容是什么,贴出来

#4


引用 2 楼 zl52284588 的回复:
引用 1 楼 acmain_chm 的回复:
方法一,在数据库中设置这两个字段为复合主键,或者复合唯一索引,然后再INSERT时CATCH 异常处理。
方法二,仍然在你的程序中判断,但你需要断点调试一下,看看你的strCheck到底是什么语句。


string strCheck = "select * from Th_MedicalCostStandard where if_remo……
没有你的程序,别要怎么调试?怎么知道strCheck 的实际内容是什么? 断点调试,然后贴出实际的字符串内容,这样别不就不用花时间去猜了。