2013-10-30 33 views
0

我試圖在我的訪問數據庫中獲取保存爲Double的數據。我的應用程序假設將數據存儲爲double(Number-Data Type)並將其放置在標籤中供我查看。我可以通過將它重新標記爲文本來實現,但它不會與雙倍工作。c#從訪問數據庫中獲取雙倍數據到表單

任何建議將是有幫助的!以下是我的,(1)是我的Double數據所在的列。

  str = "Select * from data where loc='" + loc + "'"; 
      cmd = new OleDbCommand(str, con); 
      dr = cmd.ExecuteReader(); 

      if (dr.Read()) 
      { 
       label33.Text = dr.GetDouble(1); 
+0

「不會工作」是什麼意思?例外?沒有?錯誤的數據? – germi

+0

不要在sql-queries中使用'*'。這可能會在未來造成令人討厭的錯誤。 –

+0

我沒有得到任何錯誤/例外,只是沒有數據顯示在我的標籤上。 @TimSchmelter,虐待更新不使用*。謝謝 –

回答

2

C#是一種類型化語言,您不能將一個double賦給一個字符串變量。這應該工作:

label33.Text = dr.GetDouble(1).ToString(); 

邊注:請不要使用SQL查詢*。如果schmema發生變化,將來可能會導致嚴重的錯誤。取而代之的是列出所有的列。

您還可以使用GetOrdinal得到列的索引,那麼你可以使用它的名字是什麼不容易出錯:

int dataColIndex = dr.GetOrdinal("DataCol"); 
double dataValue = dr.GetDouble(dataColIndex); 
label33.Text = dataValue.ToString(); 

你也應該考慮給你的控制更有意義的名稱;)

+0

太棒了!感謝您的詳細回覆。這工作完美... 4個月學習C#,學習永遠不會停止。謝謝! –