2012-02-14 413 views
0

我已经做了几个小时的研究,但似乎没有什么适用于我目前的情况。ExecuteReader:CommandText属性尚未初始化

使用:Visual Studio 2010的.NET 4.0 语言:C#

问题:

我创建了一个表格,然后将它从我的数据源下降的特定表到形式有VS2010创建数据我的桌子。 当我尝试使用数据表更改或向数据库添加值时,出现上面列出的错误“ExecuteReader:CommandText属性尚未初始化”。

从我以前的研究,不,我没有定义CommandText,也不知道在哪里创建一个考虑VS2010创建所有数据表的代码,并没有列出.cs文件本身。

感谢您的帮助!

代码从形式击中F7

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
namespace mineral_monitor.Manual_edits 
{ 
    public partial class mineral_stock : Form 
    { 

    public mineral_stock() 
    { 
     InitializeComponent(); 
    } 

    private void mineralsBindingNavigatorSaveItem_Click(object sender, EventArgs e) 
    { 
     this.Validate(); 
     this.mineralsBindingSource.EndEdit(); 
     this.tableAdapterManager.UpdateAll(this.ore_stockDataSet1); 

    } 

    private void mineral_stock_Load(object sender, EventArgs e) 
    { 
     // TODO: This line of code loads data into the 'ore_stockDataSet1.minerals' table. You can move, or remove it, as needed. 
     this.mineralsTableAdapter.Fill(this.ore_stockDataSet1.minerals); 

    } 

    } 
} 

此获得的是通过在数据设计手动创建一个更新串解决。

+0

CommandText = ????请发布您的代码.. CommandType = ??? – MethodMan 2012-02-14 15:09:09

+0

将命令文本传递给命令对象是适配器的责任。因此,您可能无法使用适配器中的“SelectCommand”。 – 2012-02-14 15:49:16

+0

@WiktorZychla - 当我在数据设计器中查看TableAdapter属性时,它确实声明它具有选择,插入和更新命令。 – Sirusx69 2012-02-14 15:52:21

回答

0

当您创建数据源时,VisualStudio会自动为您创建选择命令,但更新,插入和删除命令不会自动创建。你将不得不手动指定它们或使用SqlCommandBuilder。查看this链接。

+0

我接受了您的建议并查看了MSDN网站。我做了一些搞乱,现在我得到“更新需要一个有效的UpdateCommand”,这是一个非常简单的错误。经过我的研究,尽管每个人都说CommandString builer不能建立东西来更新ALL到表格。如何让保存按钮更新通过DataGridViewer所做的所有更改? – Sirusx69 2012-02-14 16:15:13

+0

如果您没有单个表格,但是有一些Join或某物,则必须手动指定DataAdapter的UpdateCommand。在其他情况下,SqlCommandBuilder应该为你自动生成更新命令。看看这个链接:http://stackoverflow.com/questions/588361/update-requires-a-valid-updatecommand-when-passed-datarow-collection-with-modifi – 2012-02-14 16:20:57

+0

它是一个单一的表。正如我所说的,我所做的只是从数据源窗口拖放到Windows窗体上,并自动设计了datagridview和修改按钮(打开/保存等)。我也不太了解你与我联系的页面。我已经有一个数据适配器作为mineralsTableAdapter,但是当运行“mineralsTableAdapter.Fill(this.ore_stockDataSet1.minerals)”时,它仍会返回我没有设置“更新命令”的情况。 – Sirusx69 2012-02-14 18:15:58

相关问题