2013-08-03 157 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

相关问题