C# WinForms中的PetaPoco
如何使用PetaPoco提交DataGridView中所做的更改?比如:C# WinForms中的PetaPoco,c#,winforms,orm,petapoco,C#,Winforms,Orm,Petapoco,如何使用PetaPoco提交DataGridView中所做的更改?比如: namespace PetaPocoTest { public partial class Form1 : Form { PetaPoco.Database db = new PetaPoco.Database("PgConnection"); IEnumerable<customers> allCustomers; public Form1
namespace PetaPocoTest
{
public partial class Form1 : Form
{
PetaPoco.Database db = new PetaPoco.Database("PgConnection");
IEnumerable<customers> allCustomers;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
allCustomers = db.Query<customers>("SELECT * FROM customers");
mGrid.DataSource = allCustomers .ToList();
}
private void simpleButton1_Click(object sender, EventArgs e)
{
db.Save("customers", "custumer_id", allCustomers);
}
}
}
命名空间PetaPocoTest
{
公共部分类Form1:Form
{
PetaPoco.Database db=新的PetaPoco.Database(“PgConnection”);
i数不清的所有客户;
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
allCustomers=db.Query(“从客户中选择*);
mGrid.DataSource=allCustomers.ToList();
}
私有void simpleButton1_单击(对象发送方,事件参数e)
{
数据库保存(“客户”、“客户id”、所有客户);
}
}
}
我终于拿到了。我只是在一些显而易见的事情上浪费了几个小时:\
namespace PetaPocoTest
{
public partial class Form1 : Form
{
PetaPoco.Database db = new PetaPoco.Database("PgConnection");
IEnumerable<customers> allCustomers;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
allCustomers = db.Query<customers>("SELECT * FROM customers");
mGrid.DataSource = allCustomers .ToList();
}
private void simpleButton1_Click(object sender, EventArgs e)
{
foreach (var a in allCustomers)
{
db.Save("customers", "custumer_id", a);
}
}
}
}
命名空间PetaPocoTest
{
公共部分类Form1:Form
{
PetaPoco.Database db=新的PetaPoco.Database(“PgConnection”);
i数不清的所有客户;
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
allCustomers=db.Query(“从客户中选择*);
mGrid.DataSource=allCustomers.ToList();
}
私有void simpleButton1_单击(对象发送方,事件参数e)
{
foreach(所有客户的var a)
{
数据库保存(“客户”、“客户id”,a);
}
}
}
}
试试我的答案
这是迄今为止最简单、最简单的方法,可以做您想做的事情。db.Save不起作用。我得到了“该对象没有与主键列名'customer_id'匹配的属性”,我确实尝试过在上面移动.ToList(),但仍然得到了“该对象没有与主键列名'customer_id'匹配的属性”没有。。。这不好!它可以工作,但它会为所有行生成并执行UPDATE-s,无论它们是否被修改!Micro ORM通常不跟踪更改。您需要自己实现这一点。我建议您查找一个修改事件,并将每个更改的客户标记为已更新。保存后,只保留已更改的客户