美好的一天!TableAdapter不保存对SQL的更改表
我是C#的新手。
我有数据集在Windows窗体中,我已经添加了一个记录数据集。然后我调用TableAdapter.Update(MyTable)(RowState处于增加模式)。进行了更改,我可以在绑定到SQL MyTable的DataGridView中看到它们。我可以关闭我的应用程序并重新开始,我会看到添加的记录。
private void button1_Click(object sender, EventArgs e)
{
DimaeSQLDS dsAddToDima = new DimaeSQLDS();
using (DimaeSQLDSTableAdapters.OrganizationsTableAdapter orgAdapter = new DimaeSQLDSTableAdapters.OrganizationsTableAdapter())
{
orgAdapter.Fill(dsAddToDima.Organizations);
DimaeSQLDS.OrganizationsRow organizationsRow = dsAddToDima.Organizations.NewOrganizationsRow();
organizationsRow.Address = tbINN.Text;
organizationsRow.OrgName = tbOrgName.Text;
organizationsRow.UrFiz = 0;
dsAddToDima.Organizations.Rows.Add(organizationsRow); //adds row to DataSet
this.Validate();
orgAdapter.Update(dsAddToDima.Organizations);
}
this.Close();
}
现在是我的问题:
我去服务器资源管理器 - > MyTable的(在这里我添加的记录) - >右键点击“显示表数据”,我看没有记录添加到桌子。然后我再次启动我的应用程序......在我查看MyTable之后,我新添加的记录被删除。
我无法理解这种魔法!请帮帮我!
!!!! UPDATE !!!!!
这是我的第一个形式。父窗体
namespace DimaeApplication
{
public partial class fOrganizations: Form
{
#region variables
fAddOrganization addOrganization;
fContainer container;
#endregion
public fOrganizations()
{
InitializeComponent();
}
private void fOrganizations_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'dimaeSQLDS.Organizations' table. You can move, or remove it, as needed.
this.organizationsTableAdapter.Fill(this.dimaeSQLDS.Organizations);
}
public void ReloadBindigs(object sender)
{
if (this.tbSearchOrganization.Text == string.Empty)
this.organizationsTableAdapter.Fill(this.dimaeSQLDS.Organizations);
else
try
{
string searchParam = "%" + this.tbSearchOrganization.Text + "%";
this.organizationsTableAdapter.FillBy(this.dimaeSQLDS.Organizations, searchParam);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
private void tsbCreateOrg_Click(object sender, EventArgs e)
{
if (addOrganization == null || addOrganization.IsDisposed)
{
addOrganization = new fAddOrganization();
addOrganization.MdiParent = container ;
addOrganization.Show();
}
}
}
}
我的第二形态。儿童。我在这里添加记录
namespace DimaeApplication
{
public partial class fAddOrganization : Form
{
public fAddOrganization()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DimaeSQLDS dsAddToDima = new DimaeSQLDS();
using (DimaeSQLDSTableAdapters.OrganizationsTableAdapter orgAdapter = new DimaeSQLDSTableAdapters.OrganizationsTableAdapter())
{
orgAdapter.Fill(dsAddToDima.Organizations);
DimaeSQLDS.OrganizationsRow organizationsRow = dsAddToDima.Organizations.NewOrganizationsRow();
organizationsRow.Address = tbINN.Text;
organizationsRow.OrgName = tbOrgName.Text;
organizationsRow.UrFiz = 0;
dsAddToDima.Organizations.Rows.Add(organizationsRow); //adds row to DataSet
this.Validate();
orgAdapter.Update(dsAddToDima.Organizations);
}
this.Close();
}
private void fAddOrganization_FormClosed(object sender, FormClosedEventArgs e)
{
fOrganizations org = new fOrganizations();
org.ReloadBindigs(org);
}
}
}
如果您需要为每个表单生成代码,请告诉我。
谢谢你!
请向我们展示您正在使用的**连接字符串**! – 2013-04-10 09:38:18
难道你有某种'TRUNCATE TABLE'的东西在你用于测试的地方,并忘记删除? – 2013-04-10 09:39:06
连接字符串是“数据源= |数据目录| \\ DimaeSQL.sdf” – Lena 2013-04-10 09:44:14