2013-08-03 77 views
0

我想用linq將數據插入到我的數據庫中。我按照instruction,然後我做一些編碼在這裏,基於被跟隨指令C#:使用linq將數據插入到數據庫中

private void addNasabah() 
    { 
     char gender = cekRadio(); 

     customer customer = new customer() 
     { 
      nomor_customer = int.Parse(innomor.Text), 
      nama = innama.Text.ToString(), 
      jenis_kelamin = gender, 
      alamat = inalamat.Text.ToString(), 
      nomor_telepon = innomor.Text.ToString(), 
      saldo = 0 
     }; 

     dc.customers.InsertOnSubmit(customer); 
     try 
     { 
      dc.SubmitChanges(); 
      cmd.cetakSukses("Berhasil Menyimpan Nasabah", "Tambah Nasabah"); 
      innomor.Text = genNextId().ToString(); 
     } 
     catch (Exception e) 
     { 
      cmd.cetakGagal(e.ToString(), "Tambah Nasabah");         
     } 

    } 

這裏是cekRadio()方法

private char cekRadio() 
    { 
     if (radioButton1.Checked) 
     { 
      return 'p'; 
     } 
     else 
     { 
      return 'w'; 
     } 
    } 

,但我遇到了一些錯誤,這裏的錯誤 error

圖片顯示「輸入字符串格式不正確」。

什麼是預期的字符串正確格式?

這裏是我的genNextId()方法

private int genNextId() 
    { 
     int id = (from a in dc.customers 
        select a.nomor_customer).Max(); 

     return id+1; 
    } 

我嘗試運行的應用程序,在MessageBox顯示「Berhasil Menyimpan Nasabah」,「Tambah Nasabah」但後來我在我的數據庫覈對,輸入的數據是不存在。

這裏是我customer表的數據庫 missing attribute

+0

idk,錯誤指向圖片上黃色標記的行。 – Cignitor

+0

'innomor.Text'的價值是什麼? –

+0

該代碼拋出異常:'int.Parse(innomor.Text)'。檢查'innomor.Text'的內容 – Dennis

回答

0

在旁邊放這條線Customer customer = new Customer()一個破發點,你現在可以檢查了每個變量的值,該int.Parse()可能是一個問題,如果該字符串無法將解析爲整數

此外,請確保Customer的屬性爲預期類型,例如,檢查jenis_kelamin

另一個(無關的錯誤)點,如果你使用Object Initializer新對象{},則可以刪除括號(),所以你必須......

Customer customer = new Customer { ..properties.. }; 

編輯:鑑於您發佈的一些評論,我需要指出您檢索的方式。下一個ID是一個不好的方法。我在上面的一個註釋中指定,您應該在SQL中使用Identity字段,這樣您可以設置seedincrement,SQL將代表您生成下一個ID。

+0

是的,我已修復該行。這裏是我的'innomor'行'innomor.Text = genNextId()。ToString();' – Cignitor

+0

@Cignitor所以,錯誤現在在別的地方? – christiandev

+0

err是的,現在的錯誤是輸入的數據沒有保存在我的數據庫:(對不起,讓你們感到困惑 – Cignitor

相關問題