如何在Controller动作中创建序列号?

时间:2016-12-19 12:25:04

标签: asp.net-mvc database

我正在开展一个电子健康患者门户项目。

我想针对从View到Controller的提交表单生成一个数字(int类型)(当抽血者收到血液样本时,他将检查该框并单击“提交”按钮)。该数字是将在我的控制器中生成的患者血液样本编号,并将保存在数据库中。我使用下面的逻辑来创建数字,但它总是给我零。

请告诉我如何按顺序逐个创建数字并存储在数据库中?

public ActionResult AddSampleTest(int Pid, int Tid, int Stid, string   Comment ,string testDate,int DotorID)
    {
        int sampleNumber=1;
        Random rnd = new Random();
        int[] sample = new int[50000];
        rnd.Next();
        for (int ctr = 1; ctr <= sample.Length; ctr++)
        {
            sampleNumber=sample[ctr + 1];

        }




        string sampleno = sampleNumber.ToString();
        DateTime TestDate = Convert.ToDateTime(testDate);
        int  Recomended_Test_DoctorID = DotorID;

        // Update the Sample Status 
        PatientTest objpatientTest = db.PatientTests.Where(x => x.PatientID == Pid && x.Testid == Tid && x.SubTestId == Stid && x.Date==TestDate &&x.DoctorId== Recomended_Test_DoctorID).FirstOrDefault();
        objpatientTest.SampleStatus = "Sample Received";
        objpatientTest.SampleNumber = sampleno;
        db.SaveChanges();

        var name = User.Identity.Name;
        int Lid = db.LabAttendantRecords.Where(x => x.Name == name).Select(x => x.User_id).FirstOrDefault();



        LabTestSample obj = new LabTestSample();
            obj.labtestid = Tid;
            obj.PatientId = Pid;
            obj.subtestid = Stid;
            obj.labAtendid = Lid;
            obj.date = DateTime.Now.Date;
            obj.sampleReceived = true;


            obj.Comment = sampleno;
            db.LabTestSamples.Add(obj);
            db.SaveChanges();

        return RedirectToAction("TestSampleNumber", "LabAttendantDashboard", new { sampleno});

        // Use This for add Result
        return RedirectToAction("SubTest", "LabAttendantDashboard", new { Pid, Tid, Stid });
    }

1 个答案:

答案 0 :(得分:1)

sampleNumber始终为0,因为sample中的每个元素都为0。 如果您希望它是随机数,您需要执行以下操作:

Random rnd = new Random();
int sampleNumber = rnd.Next();
string sampleno = sampleNumber.ToString();

如果您需要确保样本编号是唯一的,则应使用Guid:

string sampleno = Guid.NewGuid().ToString();