我是一名編程初學者,我正試圖製作一個跟蹤WPF中的慢跑數據的程序。我設置了一個列表框,該列表框與我的緊湊型sql數據庫進行數據綁定,在該數據庫中記錄我的信息。雖然我在Visual Studio中工作,但它在我發佈該程序時,列表框將不再顯示數據庫中正確的信息。每次開始新節目時,它都會重新開始。我知道信息是在數據庫中,因爲我有圖表,可以正確顯示所有最新記錄的數據。但是,列表框只會顯示當前會話期間記錄的數據。當我關閉程序並重新打開時,來自以前會話的數據不再顯示在列表框中。一旦程序發佈,Listbox將不會顯示更新的數據庫信息
我的代碼如下所示:
runDataDataSet1 ds;
runDataDataSet1TableAdapters.runDataTableTableAdapter dt;
weightDataSet wds;
weightDataSetTableAdapters.weightTableTableAdapter wdt;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ds = ((runDataDataSet1)(this.FindResource("runDataDataSet1")));
dt = new runDataDataSet1TableAdapters.runDataTableTableAdapter();
dt.Fill(ds.runDataTable);
CollectionViewSource cvs = ((CollectionViewSource)(this.FindResource("runDataTableViewSource")));
cvs.View.MoveCurrentToFirst();
wds = ((weightDataSet)(this.FindResource("weightDataSet")));
wdt = new weightDataSetTableAdapters.weightTableTableAdapter();
wdt.Fill(wds.weightTable);
CollectionViewSource wcvs = ((CollectionViewSource)(this.FindResource("weightTableViewSource")));
wcvs.View.MoveCurrentToFirst();
提交數據我有當按鈕被按下提交驗證碼:
double pace = runData.runPace(runData.milesRun, runData.timeRun);
double pace2 = Math.Round(pace, 1);
double milesDuration = Math.Round((runData.mileDuration(runData.milesRun, runData.timeRun)), 1);
paceTextBox.Text = ((milesDuration) + " min mile");
//UPDATE DATABASE
string myConnectionString = @"Data Source=C:\Users\zfam\My Projects\programming\visual studio\XTrakker\XTrakker\runData.sdf";
string mySelectQuery = "SELECT [int], [runDate], [runDist], [runTime], [runPace] FROM [runDataTable] order by [int] desc";
DataRow dr = ds.Tables["runDataTable"].NewRow();
SqlCeDataAdapter adapter = new SqlCeDataAdapter(mySelectQuery, myConnectionString);
dr["runDate"] = date;
dr["runDist"] = distData;
dr["runTime"] = timeData;
dr["runPace"] = milesDuration;
ds.Tables["runDataTable"].Rows.Add(dr);
SqlCeCommandBuilder projectBuilder = new SqlCeCommandBuilder(adapter);
DataSet newSet = ds.GetChanges(DataRowState.Added);
adapter.Update(newSet, "runDataTable");
adapter.Dispose();
同樣,雖然我在Visual Studio和我運行程序,這一切都按照它應該的方式工作。一旦我發佈,列表框將只顯示當前會話的數據,即使實際的數據庫文件正在更新。也許我這樣做都錯了?有什麼想法嗎?