[英]Need Millisecond Accuracy in DateTime in DetailsView c# How to Access Data directly in Details View?
因此,我一直在浏览堆栈溢出和MSDN,无法找到控件(或弄清楚我拥有的控件)来直接访问detailsview的数据。 我在使用.Net WebApplication的C#中。
我认为我正在寻找的是gridview中的等效项是row.Cells [1] .Value有人可以帮助访问DetailsView单元格的值吗?
我想做的是访问我绑定到DetailsView1的确切数据值。对于所有数字和字符串(例如仅显示两个),Text就足够了,但对于时间戳MTTS(日期时间)却是不够的,因为它丢失了毫秒和代码(SQL查询)之后使用的代码,如果没有毫秒就无法在db中找到正确的值。 我是否还需要更改绑定数据的方式,或进行一些设置以使绑定的数据毫秒精度?
代码示例:
Decimal RUN_ID = 0;
DateTime MTTS = new DateTime();
foreach(DetailsViewRow row in DetailsView1.Rows)
{
switch(row.Cells[0].Text)
{
case "RUN_ID":
RUN_ID = Decimal.Parse(row.Cells[1].Text);
break;
case "MTTS":
MTTS = DateTime.Parse(row.Cells[1].ToString());
break;
}
}
我努力了
row.Cells[1].ID = "MTTS";
MTTS = (DateTime)((DataRowView)DetailsView1.DataItem)["MTTS"];
但是它无法识别MTTS,因此我不确定如何设置参数。我已经尝试了几种不同的方法,但均未成功。
解决方法是混乱的,从本质上来说,我重建了将数据收集到GridView的查询,然后我使用LinQ和从GridView内部的参数(直接将MTTS分配为DateTime)获取了直接捕获MTTS的功能。
在我看来,这是一种糟糕的处理方式,但确实有效。 我希望有一个更好的解决方案。
MTTS = GetMTTS(JOB_PLAN, JOB_NAME,JOB_NAME_ID,RUN_ID,JOB_STATUS);
public DateTime GetMTTS(string JOB_PLAN, string JOB_NAME, string JOB_NAME_ID, Decimal RUN_ID, string JOB_STATUS){
string myEnvName = XXX;
TableName = XXX.ToString();
ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[myEnvName].ToString();
string thisRUN_ID = RUN_ID.ToString();
cmdText = @"SELECT MTTS FROM " + TableName +
" WHERE JOB_PLAN = '" + JOB_PLAN + "'"
+ " AND JOB_NAME = '" + JOB_NAME + "'"
+ " AND JOB_NAME_ID = '" + JOB_NAME_ID + "'"
+ " AND RUN_ID = '" + thisRUN_ID + "'"
+ " AND JOB_STATUS = '" + JOB_STATUS + "'";
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
try
{
SqlCommand SQLcc = new SqlCommand(cmdText,conn);
SqlDataReader reader;
reader = SQLcc.ExecuteReader();
while (reader.Read())
{
MTTS = reader.GetDateTime(0);
}
reader.Dispose();
}
catch (Exception e)
{
Console.WriteLine("{0} Exception caught.", e);
}
}
return MTTS;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.