为什么IntelliSense不知道我的数据表?

时间:2012-03-21 01:40:33

标签: c# visual-studio-2010 datatable intellisense

我创建了一个数据集(DataSet1.xsd)。然后我创建了一个TableAdapter(DataTable1TableAdapter)并添加了一个查询(下面的图片):

dataset

query

当我预览数据时,我看到了我所期待的:很多返回的行。

在我的C#程序中,在button1_Click事件中,我尝试输入以下内容:

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 MailingList
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.DataTable1TableAdapter.Fill(this.DataSet1.DataTable1);
            foreach (DataRow row in DataTable1.Rows)
            {
                // insert code here to work with the data
            }

        }
    }
}

问题是IntelliSense无法识别我的数据表并在其下面放置了一条波浪形的红线。由于我在设计器屏幕中描述了数据表,我不应该在我的程序中使用它吗?或者,我是否必须定义数据表并在程序中添加列?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您需要添加Dataset to Form1

来自MSDN:

  

打开您要使用的表单或组件。如有必要,请切换   设计师的设计视图。从“工具箱”的“数据”选项卡中,拖动   设计器上的DataSet对象。

     

出现“选择数据集”对话框。选择Typed Dataset,然后选择   然后从下拉列表中选择要使用的数据集,以及   然后单击“确定”。

     

下拉列表中填充了所有类型化数据集的列表   你的项目中的课程。

答案 1 :(得分:1)

DataTable是DataSet的一部分,没有本地引用。变化

this.DataTable1TableAdapter.Fill(this.DataSet1.DataTable1);
foreach (DataRow row in DataTable1.Rows)

this.DataTable1TableAdapter.Fill(this.DataSet1.DataTable1);
foreach (DataRow row in this.DataSet1.DataTable1.Rows)