C#:使用linq将数据插入数据库

时间:2013-08-03 12:26:11

标签: c# database string linq insert

我想使用linq将数据插入我的数据库。我按照instruction进行操作,然后根据后面的说明进行编码

 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;
    }

我尝试运行该应用程序,消息框显示“Berhasil Menyimpan Nasabah”,“Tambah Nasabah”,但随后我检查了我的数据库,输入的数据不存在。

这是我在数据库上的customermissing attribute

1 个答案:

答案 0 :(得分:0)

在此行Customer customer = new Customer()旁边放置一个断点,现在您可以检查每个变量的值是什么,如果字符串不能,则int.Parse()可能会成为问题解析为整数

另外,请确保Customer的属性为预期类型,例如,请检查jenis_kelamin

另一个(与错误无关)点,如果您使用 Object Initializer 新对象{} ,则可以删除括号(),所以你会...

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

编辑:根据您发布的一些评论,我需要指出您检索下一个ID 的方式是一种不好的方法。我在上面的一条评论中指定您应该在SQL中使用Identity字段,这样您就可以设置seedincrement,SQL将代表您生成下一个ID。

相关问题