【问题标题】:Column <column name> does not belong to table列 <列名> 不属于表
【发布时间】:2014-09-12 06:42:24
【问题描述】:

我在 SQL 中创建了一个包含 3 个字段的表。并添加了一些数据。现在我想通过编码向该表中插入更多数据。 如果我单击 button_1 数据将被插入到表中。 我尝试了下面给出的代码。

我已经执行了下面给出的查询,但它显示了一个错误: “列‘站点名称’不属于表” “列 'SiteId' 不属于表” "列 'Cluster' 不属于表"

protected void Button1_Click(object sender, EventArgs e)
    {
        string strcon = WebConfigurationManager.ConnectionStrings["insertBulkConnectionString"].ConnectionString;
        DataTable dt = new DataTable();
        DataRow rowAdded = dt.Rows.Add(); 
        rowAdded.SetField("SiteName", "A");
        rowAdded.SetField("State", "B");
        rowAdded.SetField("Cluster", "C");
    }

【问题讨论】:

  • 您必须打开连接,使用所需参数编写查询,执行查询然后将其插入。只需 google insert data into sql using c#,您将获得数以千计的有用链接。
  • 你应该找到一个关于如何使用数据库的好教程。

标签: c# sql asp.net database


【解决方案1】:

错误的原因是您尝试将具有三个字段的DataRow 添加到当前不包含任何DataColumns 的表中。如果您想手动执行此操作,则必须使用 dt.Columns.Add(...)

DataTable dt = new DataTable();
dt.Columns.Add("SiteName", typeof(string));
dt.Columns.Add("State", typeof(string));
dt.Columns.Add("Cluster", typeof(string));
dt.Rows.Add("A", "B", "C");

如果表格已经填满并且您想手动添加一些行(如评论中所述),您可以使用SetField 仅填充一些列:

DataRow rowAdded =  dt.Rows.Add(); // already added at this point with empty fields
rowAdded.SetField("SiteName", "A");
rowAdded.SetField("State", "B");
rowAdded.SetField("Cluster", "C");

如果你想从数据库中填充它你可以使用DataAdapter.Fill(table), f.e:

using(var con = new SqlConection(WebConfigurationManager.ConnectionStrings["insertBulkConnectionString"].ConnectionString))
using(var da = new SqlDataAdapter("SELECT * FROM Table ORDER BY Column", con))
{
    da.Fill(dt);  // you don't need to add the columns or to open the connection
}

【讨论】:

  • 其实我的表已经包含了一些值,是我在sql中手动输入的。现在我想通过单击一键将一些数据输入到同一个表中。那么如何在该表中插入值呢?
  • @vipintp:该表包含哪些列?我已经编辑了我的答案以显示如何仅修改某些列。
  • 以下是字段。站点名称、状态、集群
  • @vipintp:这些列不属于该表,错误消息非常具有描述性,我在答案中也提到了它。目前尚不清楚您实际上要做什么。 “我的表已经包含一些值”你指的是什么表,DataTable 或数据库中的表。不要将DataTable 与数据库表混淆,它只是一个类似于列表或数组的内存集合。你必须以某种方式填写它。
  • 我已经执行了你给我的代码,但它显示另一个错误是列名不属于该表。
猜你喜欢
  • 2014-07-03
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 2021-01-10
  • 2017-12-22
  • 2012-01-14
相关资源
最近更新 更多