首页 > 解决方案 > `scalr` 变量在哪里

问题描述

好吧,过去三天我一直试图解决这个问题,但无济于事,看了几十个问题和答案。这是有问题的代码。我已经用>>标记了它的倒下位置,这大约是从底部向上的第 4 行。错误消息是:必须声明一个标量变量,所需的结果是获取特定外科医生正在执行的手术日期的记录数。

protected void ItemUpdated_refreshSQLDS1(object sender, FormViewUpdatedEventArgs e)
    {
        strCmd = "SELECT ScheduledSurgeryID, PatientSurgeryID, " +
           "Hospital, SurgeryDate, Surgeon, Anaesthetist, Patient, " +
           "Gender, DateofBirth, NHINumber, Address, HomePh, Mobile, " +
           "WorkPh, Email, DayStay, NightsHosp, OperationOrder, " +
           "AdmitTime, SurgeryTime, ARTPDescription, " +
           "PrimaryProcedure, ACCCode, MBSECode, Side, ClaimNumber, " +
           "PolicyNumber, Insurer, OpTime, SurgeonID, MedicalAlert, " +
           "AnaestheticType, ACCPurchaseOrder, PriorApproval, " +
           "EquipmentRequired, HospitalID, SurgeonFee, PatientFileNo FROM vSurgeryList " +
           "WHERE PatientSurgeryID = '" + Session["sid"] + "'";

      
        SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataSet;
        SqlDataSource1.ConnectionString = strConnStr;
        SqlDataSource1.SelectCommand = strCmd;
        FormView1.DataSource = SqlDataSource1;
        FormView1.DataBind();

        CultureInfo ci = new CultureInfo("en-NZ");

        DataSourceSelectArguments args = new DataSourceSelectArguments();
        DataView view = (DataView)SqlDataSource1.Select(args);
        DataTable dt = view.ToTable();

        var st = dt.Rows[0] 
        ["SurgeryDate"].ToString().PadRight(10).Substring(0, 10);
        DateTime surgdate = Convert.ToDateTime(st,ci);

        string thedate = surgdate.ToShortDateString();
    
        this.Session["surgeryDate"] = dt.Rows[0]["SurgeryDate"];
        
        MessageBox.Show(thedate);

        strCmd = "SELECT vSurgeryList.ScheduledSurgeryID " +
                ",vSurgeryList.SurgeryDate "+
                ",tblSurgeons.SurgeonID "+
                "FROM dbo.vSurgeryList " +
                "INNER JOIN dbo.tblSurgeons ON vSurgeryList.Surgeon = 
                   tblSurgeons.Surgeon "+
                "WHERE tblSurgeons.SurgeonID = '" + 
                 Session["CurrentSurgeonID"] + "' "
                 + "AND vSurgeryList.SurgeryDate = @date";

        List<SqlParameter> parameters = new List<SqlParameter>();
        SqlCommand cmd = new SqlCommand(strCmd);
        SqlParameter param1 = new SqlParameter();

        param1.ParameterName = "@date";
        param1.Value = thedate;
        cmd.Parameters.Add(param1);

        ds = data.ReturnDataSet(strCmd, param1.ParameterName, param1.Value);
        BindingSource bSource = new BindingSource();
        bSource.DataSource = ds.Tables[0];
        int rc = ds.Tables[0].Rows.Count;

        SqlDataSource2.DataSourceMode = SqlDataSourceMode.DataSet;
        SqlDataSource2.ConnectionString = strConnStr;
        SqlDataSource2.SelectCommand = strCmd;
        
        cmd.Parameters.AddWithValue("@date", SqlDbType.DateTime).Value = 
       thedate;

         args = new DataSourceSelectArguments();
        >>            view = (DataView)SqlDataSource2.Select(args);
        dt = view.ToTable();
         rc = dt.Rows.Count;

    }

标签: c#sqlasp.netdatetime

解决方案


我已经解决了这个问题,这一切似乎都是围绕日期格式展开的,当我将日期格式从“dd/MM/yyyy”更改为“yyyyMMdd”时,它工作得很好。


推荐阅读