gpt4 book ai didi

c# - 列 <列名> 不属于表

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:47 24 4
gpt4 key购买 nike

我在 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");
}

最佳答案

错误的原因是您试图将具有三个字段的 DataRow 添加到当前不包含任何 DataColumn 的表中。如果您想手动执行此操作,则必须使用 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
}

关于c# - 列 <列名> 不属于表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com