gpt4 book ai didi

c# - 填充空数据表会出现 SQL 异常 "Invalid Column Name"——这没有意义?

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:01 24 4
gpt4 key购买 nike

所以我尝试使用允许您这样做的各种 Sql 帮助类在 C# 中填充一个空的 DataTable。我现在遇到一个错误,说“列名 A 无效”...这对我来说没有意义,因为 DataTable 是空的,我正在尝试填充它,而不是从它的任何列中提取任何内容.

我在下方(从我的 SQL 数据库中)提取的第一条数据有一个 SKUStockCode 单元格,其中包含“A”,如 cmd2 中所示。 DataTable 在下面称为 containsAllRelatedProductData。但是,我并没有尝试将此“A”写为我的新 DataTable 中的列,我只是引用“A”,因为它是我试图从我的 SQL 数据库中获取数据的行的 SKUStockCode。

    foreach(char ch in containsRelatedProductsStringOnly.Rows[0]["SKURelatedProducts"].ToString()) 
{
if(ch != ' ')
{
stockCode = stockCode + ch;
}
else
{
SqlCommand cmd2 = new SqlCommand("SELECT SKUName FROM COM_SKU WHERE SKUStockCode = " + stockCode, con);
SqlDataAdapter adapter2 = new SqlDataAdapter(cmd2);
adapter2.Fill(containsAllRelatedProductData); //Error
stockCode = "";
}
}

我不明白为什么错误会是无效的列名,除非在 DataTable 中创建新列有一些命名限制(据我所知没有)。错误再次出现在填充此空数据表(称为 containsAllRelatedProductData)时,而不是从中提取任何内容。有人知道为什么我会收到无效的列名错误吗?

最佳答案

你的命令看起来像:

SELECT SKUName FROM COM_SKU WHERE SKUStockCode = CODE0001

但应该是这样的:

SELECT SKUName FROM COM_SKU WHERE SKUStockCode = 'CODE0001'

所以你必须用'封装你的输入字符串,如下所示

foreach(char ch in containsRelatedProductsStringOnly.Rows[0]["SKURelatedProducts"].ToString()) 
{
if(ch != ' ')
{
stockCode = stockCode + ch;
}
else
{
SqlCommand cmd2 = new SqlCommand("SELECT SKUName FROM COM_SKU WHERE SKUStockCode = '" + stockCode+"'", con);
SqlDataAdapter adapter2 = new SqlDataAdapter(cmd2);
adapter2.Fill(containsAllRelatedProductData); //Error
stockCode = "";
}
}

关于c# - 填充空数据表会出现 SQL 异常 "Invalid Column Name"——这没有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952241/

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