[英]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.