【问题标题】:C# WinForms - how to send updates from DataGridView to DataBaseC# WinForms - 如何将更新从 DataGridView 发送到数据库
【发布时间】:2011-05-02 08:54:57
【问题描述】:

我有一个包含客户表和代理表的 .mdb 文件。 Agents 表目前唯一要做的就是为每个客户填充 Agent 下拉列表...

我有一个链接到 customerBindingSource 的 DataGridView。 customerBindingSource 的 DataMember 设置为 Customer,DataSource 设置为 bindingSource1。这将 DataSource 设置为 customerAppDS21。如果我选择 customerAppDS21 并在 DataSet Designer 中单击 Edit,我可以很清楚地看到有一个 Customer 表和 Agent 表。这些是直接从 Data.mdf > Tables 文件夹中拖出来的。我已经通过配置向导并检查了更新、插入和删除命令是否正确生成。

当用户离开一行或添加一行时,我正在设置唯一 ID (GUID)(我认为两者都不需要,但我非常怀疑这是问题的原因)。用户可以更新或添加尽可能多的行。当用户单击保存按钮时,它调用customerTableAdapter.Update(customerAppDS21.Customer);。所有的事件肯定是正确连接的。

问题基本上是数据集似乎得到了更新数据库本身没有更新。我可以关闭程序并立即重新加载它,数据就在那里。但是,如果我对代码进行任何更改,然后重新编译并加载程序,所有数据都消失了。这就是让我认为 DataSet 正在更新而不是数据库的原因。

有人知道如何解决这个问题吗?我尝试在.Update(bla); 行之前和之后添加.acceptChanges(); 行,但没有成功。我也尝试在.Update(bla); 行之前调用customerBindingSource.EndEdit();bindingSource1.EndEdit();

对此的任何帮助将不胜感激。我已经遇到这个问题 2 天了,并尝试了很多教程来提示我哪里出错了。

问候,

理查德

更新:以下代码...

void button1_Click(object sender, EventArgs e)
{
    Validate();
    customerBindingSource.EndEdit();
    customerTableAdapter.Update(customerAppDS21.Customer);
}

void grdCustomers_RowLeave(object sender, DataGridViewCellEventArgs e)
{
    DataGridViewRow gvr = grdCustomers.Rows[e.RowIndex];
    if (gvr.Cells[0].Value == null)
    {
        String g = Guid.NewGuid().ToString();
        gvr.Cells[0].Value = g;
    }
    else
    {
        String currID = gvr.Cells[0].Value.ToString();
        if (currID.Equals(""))
        {
            String g = Guid.NewGuid().ToString();
            gvr.Cells[0].Value = g;
        }
    }
}

void grdCustomers_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
    DataGridViewRow gvr = grdCustomers.Rows[grdCustomers.SelectedCells[0].RowIndex];
    if (gvr.Cells[0].Value == null)
    {
        String g = Guid.NewGuid().ToString();
        gvr.Cells[0].Value = g;
    }
    else
    {
        String currID = gvr.Cells[0].Value.ToString();
        if (currID.Equals(""))
        {
            String g = Guid.NewGuid().ToString();
            gvr.Cells[0].Value = g;
        }
    }
}

设计器代码(对不起,它太长了 - 我不想冒险错过任何重要的东西):

namespace CustomerApp
{
    partial class CustomerAppForm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
            this.tabControl1 = new System.Windows.Forms.TabControl();
            this.tabPage1 = new System.Windows.Forms.TabPage();
            this.button1 = new System.Windows.Forms.Button();
            this.grdCustomers = new System.Windows.Forms.DataGridView();
            this.agentBindingSource = new System.Windows.Forms.BindingSource(this.components);
            this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
            this.customerAppDS21 = new CustomerApp.CustomerAppDS2();
            this.tabPage2 = new System.Windows.Forms.TabPage();
            this.customerTableAdapter = new CustomerApp.CustomerAppDS2TableAdapters.CustomerTableAdapter();
            this.agentTableAdapter = new CustomerApp.CustomerAppDS2TableAdapters.AgentTableAdapter();
            this.customerBindingSource = new System.Windows.Forms.BindingSource(this.components);
            this.idDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.companynameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.contactforenameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.contactsurnameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.companyaddress1DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.companyaddress2DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.companytownDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.companycountyDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.companypostcodeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.contacttelephoneDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.contactfaxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.contactemailDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.agentIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
            this.contactfullnameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.tabControl1.SuspendLayout();
            this.tabPage1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.grdCustomers)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.agentBindingSource)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.customerAppDS21)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.customerBindingSource)).BeginInit();
            this.SuspendLayout();
            // 
            // tabControl1
            // 
            this.tabControl1.Controls.Add(this.tabPage1);
            this.tabControl1.Controls.Add(this.tabPage2);
            this.tabControl1.Location = new System.Drawing.Point(12, 12);
            this.tabControl1.Name = "tabControl1";
            this.tabControl1.SelectedIndex = 0;
            this.tabControl1.Size = new System.Drawing.Size(1000, 640);
            this.tabControl1.TabIndex = 0;
            // 
            // tabPage1
            // 
            this.tabPage1.Controls.Add(this.button1);
            this.tabPage1.Controls.Add(this.grdCustomers);
            this.tabPage1.Location = new System.Drawing.Point(4, 22);
            this.tabPage1.Name = "tabPage1";
            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
            this.tabPage1.Size = new System.Drawing.Size(992, 614);
            this.tabPage1.TabIndex = 0;
            this.tabPage1.Text = "Customers";
            this.tabPage1.UseVisualStyleBackColor = true;
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(882, 462);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 1;
            this.button1.Text = "Save";
            this.button1.UseVisualStyleBackColor = true;
            // 
            // grdCustomers
            // 
            this.grdCustomers.AllowUserToOrderColumns = true;
            this.grdCustomers.AutoGenerateColumns = false;
            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
            dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
            dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
            this.grdCustomers.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
            this.grdCustomers.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.grdCustomers.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.idDataGridViewTextBoxColumn,
            this.companynameDataGridViewTextBoxColumn,
            this.contactforenameDataGridViewTextBoxColumn,
            this.contactsurnameDataGridViewTextBoxColumn,
            this.companyaddress1DataGridViewTextBoxColumn,
            this.companyaddress2DataGridViewTextBoxColumn,
            this.companytownDataGridViewTextBoxColumn,
            this.companycountyDataGridViewTextBoxColumn,
            this.companypostcodeDataGridViewTextBoxColumn,
            this.contacttelephoneDataGridViewTextBoxColumn,
            this.contactfaxDataGridViewTextBoxColumn,
            this.contactemailDataGridViewTextBoxColumn,
            this.agentIDDataGridViewTextBoxColumn,
            this.contactfullnameDataGridViewTextBoxColumn});
            this.grdCustomers.DataSource = this.customerBindingSource;
            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
            dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
            dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
            dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
            dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
            this.grdCustomers.DefaultCellStyle = dataGridViewCellStyle2;
            this.grdCustomers.Location = new System.Drawing.Point(3, 3);
            this.grdCustomers.Name = "grdCustomers";
            dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
            dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control;
            dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText;
            dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
            dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
            dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
            this.grdCustomers.RowHeadersDefaultCellStyle = dataGridViewCellStyle3;
            this.grdCustomers.RowTemplate.DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
            this.grdCustomers.RowTemplate.DefaultCellStyle.Padding = new System.Windows.Forms.Padding(2);
            this.grdCustomers.RowTemplate.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
            this.grdCustomers.Size = new System.Drawing.Size(983, 605);
            this.grdCustomers.TabIndex = 0;
            // 
            // agentBindingSource
            // 
            this.agentBindingSource.DataMember = "Agent";
            this.agentBindingSource.DataSource = this.bindingSource1;
            // 
            // bindingSource1
            // 
            this.bindingSource1.AllowNew = true;
            this.bindingSource1.DataSource = this.customerAppDS21;
            this.bindingSource1.Position = 0;
            // 
            // customerAppDS21
            // 
            this.customerAppDS21.DataSetName = "CustomerAppDS2";
            this.customerAppDS21.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
            // 
            // tabPage2
            // 
            this.tabPage2.Location = new System.Drawing.Point(4, 22);
            this.tabPage2.Name = "tabPage2";
            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
            this.tabPage2.Size = new System.Drawing.Size(992, 614);
            this.tabPage2.TabIndex = 1;
            this.tabPage2.Text = "Agents";
            this.tabPage2.UseVisualStyleBackColor = true;
            // 
            // customerTableAdapter
            // 
            this.customerTableAdapter.ClearBeforeFill = true;
            // 
            // agentTableAdapter
            // 
            this.agentTableAdapter.ClearBeforeFill = true;
            // 
            // customerBindingSource
            // 
            this.customerBindingSource.DataMember = "Customer";
            this.customerBindingSource.DataSource = this.bindingSource1;
            // 
            // idDataGridViewTextBoxColumn
            // 
            this.idDataGridViewTextBoxColumn.DataPropertyName = "id";
            this.idDataGridViewTextBoxColumn.HeaderText = "id";
            this.idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn";
            this.idDataGridViewTextBoxColumn.ReadOnly = true;
            // 
            // companynameDataGridViewTextBoxColumn
            // 
            this.companynameDataGridViewTextBoxColumn.DataPropertyName = "company_name";
            this.companynameDataGridViewTextBoxColumn.HeaderText = "Company Name";
            this.companynameDataGridViewTextBoxColumn.Name = "companynameDataGridViewTextBoxColumn";
            this.companynameDataGridViewTextBoxColumn.ToolTipText = "The name of the company";
            // 
            // contactforenameDataGridViewTextBoxColumn
            // 
            this.contactforenameDataGridViewTextBoxColumn.DataPropertyName = "contact_forename";
            this.contactforenameDataGridViewTextBoxColumn.HeaderText = "Contact Forename";
            this.contactforenameDataGridViewTextBoxColumn.Name = "contactforenameDataGridViewTextBoxColumn";
            // 
            // contactsurnameDataGridViewTextBoxColumn
            // 
            this.contactsurnameDataGridViewTextBoxColumn.DataPropertyName = "contact_surname";
            this.contactsurnameDataGridViewTextBoxColumn.HeaderText = "Contact Surname";
            this.contactsurnameDataGridViewTextBoxColumn.Name = "contactsurnameDataGridViewTextBoxColumn";
            // 
            // companyaddress1DataGridViewTextBoxColumn
            // 
            this.companyaddress1DataGridViewTextBoxColumn.DataPropertyName = "company_address1";
            this.companyaddress1DataGridViewTextBoxColumn.HeaderText = "Address 1";
            this.companyaddress1DataGridViewTextBoxColumn.Name = "companyaddress1DataGridViewTextBoxColumn";
            // 
            // companyaddress2DataGridViewTextBoxColumn
            // 
            this.companyaddress2DataGridViewTextBoxColumn.DataPropertyName = "company_address2";
            this.companyaddress2DataGridViewTextBoxColumn.HeaderText = "Address 2";
            this.companyaddress2DataGridViewTextBoxColumn.Name = "companyaddress2DataGridViewTextBoxColumn";
            // 
            // companytownDataGridViewTextBoxColumn
            // 
            this.companytownDataGridViewTextBoxColumn.DataPropertyName = "company_town";
            this.companytownDataGridViewTextBoxColumn.HeaderText = "Town";
            this.companytownDataGridViewTextBoxColumn.Name = "companytownDataGridViewTextBoxColumn";
            // 
            // companycountyDataGridViewTextBoxColumn
            // 
            this.companycountyDataGridViewTextBoxColumn.DataPropertyName = "company_county";
            this.companycountyDataGridViewTextBoxColumn.HeaderText = "County";
            this.companycountyDataGridViewTextBoxColumn.Name = "companycountyDataGridViewTextBoxColumn";
            // 
            // companypostcodeDataGridViewTextBoxColumn
            // 
            this.companypostcodeDataGridViewTextBoxColumn.DataPropertyName = "company_postcode";
            this.companypostcodeDataGridViewTextBoxColumn.HeaderText = "Postcode";
            this.companypostcodeDataGridViewTextBoxColumn.Name = "companypostcodeDataGridViewTextBoxColumn";
            // 
            // contacttelephoneDataGridViewTextBoxColumn
            // 
            this.contacttelephoneDataGridViewTextBoxColumn.DataPropertyName = "contact_telephone";
            this.contacttelephoneDataGridViewTextBoxColumn.HeaderText = "Telephone";
            this.contacttelephoneDataGridViewTextBoxColumn.Name = "contacttelephoneDataGridViewTextBoxColumn";
            // 
            // contactfaxDataGridViewTextBoxColumn
            // 
            this.contactfaxDataGridViewTextBoxColumn.DataPropertyName = "contact_fax";
            this.contactfaxDataGridViewTextBoxColumn.HeaderText = "Fax";
            this.contactfaxDataGridViewTextBoxColumn.Name = "contactfaxDataGridViewTextBoxColumn";
            // 
            // contactemailDataGridViewTextBoxColumn
            // 
            this.contactemailDataGridViewTextBoxColumn.DataPropertyName = "contact_email";
            this.contactemailDataGridViewTextBoxColumn.HeaderText = "Email";
            this.contactemailDataGridViewTextBoxColumn.Name = "contactemailDataGridViewTextBoxColumn";
            // 
            // agentIDDataGridViewTextBoxColumn
            // 
            this.agentIDDataGridViewTextBoxColumn.DataPropertyName = "agentID";
            this.agentIDDataGridViewTextBoxColumn.DataSource = this.agentBindingSource;
            this.agentIDDataGridViewTextBoxColumn.DisplayMember = "contact_fullname";
            this.agentIDDataGridViewTextBoxColumn.HeaderText = "agentID";
            this.agentIDDataGridViewTextBoxColumn.Name = "agentIDDataGridViewTextBoxColumn";
            this.agentIDDataGridViewTextBoxColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True;
            this.agentIDDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
            this.agentIDDataGridViewTextBoxColumn.ValueMember = "id";
            // 
            // contactfullnameDataGridViewTextBoxColumn
            // 
            this.contactfullnameDataGridViewTextBoxColumn.DataPropertyName = "contact_fullname";
            this.contactfullnameDataGridViewTextBoxColumn.HeaderText = "contact_fullname";
            this.contactfullnameDataGridViewTextBoxColumn.Name = "contactfullnameDataGridViewTextBoxColumn";
            this.contactfullnameDataGridViewTextBoxColumn.ReadOnly = true;
            this.contactfullnameDataGridViewTextBoxColumn.Visible = false;
            // 
            // CustomerAppForm
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(1184, 662);
            this.Controls.Add(this.tabControl1);
            this.Location = new System.Drawing.Point(100, 100);
            this.Name = "CustomerAppForm";
            this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
            this.Text = "Heritage Art Papers Ltd - Customer Application";
            this.Load += new System.EventHandler(this.CustomerAppForm_Load);
            this.tabControl1.ResumeLayout(false);
            this.tabPage1.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.grdCustomers)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.agentBindingSource)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.customerAppDS21)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.customerBindingSource)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.TabControl tabControl1;
        private System.Windows.Forms.TabPage tabPage1;
        private System.Windows.Forms.TabPage tabPage2;
        private System.Windows.Forms.BindingSource bindingSource1;
        private CustomerAppDS2 customerAppDS21;
        private System.Windows.Forms.BindingSource agentBindingSource;
        private CustomerAppDS2TableAdapters.CustomerTableAdapter customerTableAdapter;
        private CustomerAppDS2TableAdapters.AgentTableAdapter agentTableAdapter;
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.BindingSource customerBindingSource;
        private System.Windows.Forms.DataGridViewTextBoxColumn idDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn companynameDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn contactforenameDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn contactsurnameDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn companyaddress1DataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn companyaddress2DataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn companytownDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn companycountyDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn companypostcodeDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn contacttelephoneDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn contactfaxDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn contactemailDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewComboBoxColumn agentIDDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn contactfullnameDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridView grdCustomers;

    }
}

【问题讨论】:

  • customerTableAdapter.Update() 方法依赖于以下设置之一:InsertCommand、UpdateCommand 或 DeleteCommand。因此,您需要验证是否为适配器设置了这些命令中的至少一个。
  • 是的,我已经检查过了,他们在那里。我将它们保留在它们自动生成时的原样。

标签: c# database datagridview dataset tableadapter


【解决方案1】:

我想这可能是你的问题。非常仔细地阅读这两篇文章。第一个包含一个线程,建议在第二个链接(我在下面给出)中。

http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.adonet/topic58794.aspx

http://msdn.microsoft.com/en-us/library/ms246989.aspx

在第一个链接中,阅读 Kerry Moorman 的答案。

【讨论】:

  • 我只是仔细检查了一遍。我以为它设置为不复制,但显然它设置为复制选项之一。现在它说“尝试为文件 {project-directory}\bin\Debug\Data.mdf 附加自动名称数据库失败。”我不明白为什么它指向 bin\Debug\.
  • @Clarkey:它仅与复制到路径有关。我现在无法模拟这个东西。
  • 好吧,我让它基于“如果更新则复制”工作,但是如果我添加 10 个客户,然后更改主数据库(被复制的那个),10 个客户将神奇地消失.. . 我不希望这种情况发生。使用 VB.Net(对于我最近一直在做的一个网站)它会更新实际的数据库而不复制它。我希望它这样做。
  • 基本上我认为我需要以某种方式更改连接字符串以指向原始...
  • 可能是。我想必须有一些属性来更新实际的数据库,就像它对你有用之前一样。
【解决方案2】:

【讨论】:

  • 这些都没有帮助。我只是不明白为什么它不起作用。当然,您应该能够设计一个表单,纯粹在设计视图中,当您更改行时更新数据库?如果是这样,那么在代码中的其他事件上更新数据库肯定应该相对简单......
  • @Clarkey:请在此处粘贴您的确切方法代码,以便我们查看。
  • 我已经添加了上面的代码。我知道它很长 - 正如我所说的,我不想冒险错过任何重要的东西......
猜你喜欢
  • 2012-09-08
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
相关资源
最近更新 更多