2017-03-16 41 views
-3

我是新的Windows窗體應用程序我想將數據保存在除(Sql)或數據庫以外的文件中。我嘗試了很多東西,並且只能使用它存儲文本文件中的一個值數據保存在除數據庫以外的文件中

TextWriter txt = new System.IO.StreamWriter("E:\\Tahir\\ScaleSystemDataSave\\First.txt"); 
txt.Write(txtFirsrWeight.Text); 
txt.Close(); 

但我想保存的對象,在文件我怎麼能做到這一點。我的目標是這樣的

private void btnSave_Click(object sender, EventArgs e) 
{ 
    FirstTime obj = new FirstTime(); 
    obj.CardNo = txtCardNo.Text; 
    obj.DateTime = txtDateTimePicker.Value; 
    obj.VehicleNo = txtVehicalNo.Text; 
    obj.WeightType = Convert.ToString(cbxWeigtType.SelectedItem); 
    obj.FirstWeight = txtFirsrWeight.Text; 
    if (rbtWithDriver.Checked == true) 
    { 
     obj.IsDriver = (int)Status.WithDriver; 
    } 
    else if (rbtWithouDriver.Checked == true) 
    { 
     obj.IsDriver = (int)Status.withOutDriver; 
    } 

} 
+0

你需要從文本文件檢索數據並重新創建隨時對象? – Wheels73

+2

請不要**標記爲垃圾郵件。標籤具有特定的含義,並在此處相關。使用實際適用於你的問題的那些。你的問題與JavaScript,PHP,CSS或OOP完全無關,所以**這些標籤都不適用於你的帖子**,並且添加它們是完全錯誤的。 –

+0

好的謝謝先生幫助我提高我提問的能力 –

回答

1

您有2個選項提供給您。

  1. 將文本文件自己格式化爲逗號分隔文件,然後將文件重新讀入,解析並將值分配回您的對象。

  2. 使用公知的序列化技術如XML或JSON。

下面是一個JSON序列化的例子,它實現了你所需要的。

var first = new FirstTime() 
      { 
       CardNo = "121515611", 
       Date = DateTime.Now.Date, 
       VehicleNo = "MNRG23434", 
       WeightType = "MyWeight", 
       FirstWeight = "FirstWeight" 
      }; 

      var fileText = JsonConvert.SerializeObject(first); 

      TextWriter txt = new StreamWriter("C:\\First.txt"); 
      txt.Write(fileText); 
      txt.Close(); 

      var fileStream = File.Open("C:\\First.txt",FileMode.Open); 

      var fileReader = new StreamReader(fileStream); 
      var contents = fileReader.ReadToEnd(); 

      var restoredObject = JsonConvert.DeserializeObject<FirstTime>(contents); 

這種格式存儲數據按以下

{"CardNo":"121515611","Date":"2017-03-16T00:00:00+00:00","VehicleNo":"MNRG23434","WeightType":"MyWeight","FirstWeight":"FirstWeight"} 

希望幫助你。

+0

感謝先生其正確的答案我的問題我非常感謝你 –

+0

沒問題..隨時upvote我的回答:) – Wheels73

+0

先生的工作,但問題是,當第二個對象被添加到相同的文件,然後它覆蓋第一個對象有什麼關於它 –