C# ExecuteReader:CommandText属性尚未初始化

C# ExecuteReader:CommandText属性尚未初始化,c#,visual-studio-2010,ado.net,C#,Visual Studio 2010,Ado.net,我做了几个小时的研究,但似乎没有什么适合我目前的情况 使用:Visual Studio 2010.net 4.0, 语言:C 问题: 我创建了一个表单,然后将特定表从数据源拖放到表单上,让VS2010为我创建数据表 当我试图使用数据表更改或向数据库添加值时,出现上面列出的错误 ExecuteReader:CommandText属性尚未初始化 根据我之前的研究,不,我没有定义CommandText,也不知道在哪里创建CommandText,因为VS2010创建了所有datatable代码,并且没有

我做了几个小时的研究,但似乎没有什么适合我目前的情况

使用:Visual Studio 2010.net 4.0, 语言:C

问题:

我创建了一个表单,然后将特定表从数据源拖放到表单上,让VS2010为我创建数据表

当我试图使用数据表更改或向数据库添加值时,出现上面列出的错误

ExecuteReader:CommandText属性尚未初始化

根据我之前的研究,不,我没有定义CommandText,也不知道在哪里创建CommandText,因为VS2010创建了所有datatable代码,并且没有在.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);
    }
   }
}

这是通过在数据设计器中手动创建更新字符串来解决的

创建数据源时,VisualStudio会自动为您创建select命令,但不会创建update、insert和delete命令。您必须手动或使用SqlCommandBuilder指定它们。查看链接。

CommandText=????请把你的密码寄出去。。CommandType=???适配器负责将命令文本传递给命令对象。因此,您的适配器中可能缺少SelectCommand。@WiktorZychla-当我在数据设计器中查看TableAdapter属性时,它确实声明它有一个Select、Insert和Update命令。我听取了您的建议并查看了该MSDN站点。我做了一些胡闹,现在我得到更新需要一个有效的UpdateCommand,这是一个非常直接的错误。但在我的研究之后,每个人都说CommandString构建器无法构建一些东西来更新表中的所有内容。如何使“保存”按钮更新通过DataGridViewer所做的所有更改?如果您没有一个表,但有一些联接或其他内容,则必须手动指定DataAdapter的UpdateCommand。在其他情况下,SqlCommandBuilder应该自动为您生成更新命令。查看此链接:它是一个表。正如我所说的,我所做的只是从数据源窗口拖放到Windows窗体上,它自动设计了datagridview和修改按钮打开/保存等;我也不太明白你链接我的页面。我已经有一个数据适配器作为MineralStableApter,但是当运行mineralStableApter.Fillthis.ore_stockDataSet1.minerals时,它仍然返回我没有更新命令集。尝试删除所有内容并重新开始…新建winforms项目、添加数据源、选择表或尝试使用其他表,拖放数据集。那么它能工作吗?我创建了一个新的Windows窗体项目并设置了数据连接。当我将表拖放到表单上时,它会生成以下代码:程序似乎在this.tableAdapterManager.UpdateAllthis.ore_stockDataSet处中断;给出update命令未设置错误。