在过去的三天里,我一直试图解决这个问题,但都无济于事,我看了几十个问题和答案。这是令人不快的代码。我已经用>>标记了它的位置,这大约是从底部开始的第四行。错误消息是:必须声明一个标量变量,所需的结果是获取特定外科医生正在执行的手术日期的记录数。
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;
}发布于 2020-08-19 23:49:54
我已经解决了这个问题,它似乎都围绕着日期格式旋转,当我将日期格式从"dd/MM/yyyy“更改为"yyyyMMdd”时,它工作得很好。
https://stackoverflow.com/questions/63442406
复制相似问题