我有一个包含四列的数据库
level_1,level_2,level_3,level_4
还有id,name等,但目前只有这四个对我很重要。
我需要知道哪个列按列名称具有值'BOSS'。
例如,level_2可能具有值BOSS。我需要知道四列中的一列有代码BOSS,列名是列。
原因是我必须稍后更新这一行,但我永远不知道BOSS的价值在哪里。例如,它可以在level_4中。
我知道DataSet中有一个columnname属性,但我无法弄清楚如何在这里使用它。我无法发布我的代码,因为它有很多迭代,没有一个工作。我希望我忽略了一些显而易见的事情。
我正在使用ASP.NET 2.0和ODBC。
感谢您的任何想法。
只是为了澄清 - 我不需要知道如何获得列名本身。 columnname属性适用于此。我不知道哪个列将具有上面的BOSS值。一旦我确定我将获得columnname属性值。
我不知道哪个列会说BOSS的原因是因为还有其他值可以在四个中的任何一个中,所以数据输入人员必须选择一个打开的字段并输入代码 - 它是一个旧的数据库我继承的申请。
更新
这是我想出的。我不喜欢它,但在这里。它有效,但感觉不对:
String[] myValues = new String[5] {"BOSS", "ANOTHERCODE", "ANOTHERCODE", "ANOTHERCODE", "ANOTHERCODE"};
int x = 0;
foreach (String level in myValues)
{
foreach (DataColumn dc in ds.Tables[0].Columns)
{
String myColumnValue = ds.Tables[0].Rows[0][x].ToString();
if (myColumnValue == level)
{ return ds.Tables[0].Columns[x].ColumnName; }
x += 1;
}
x = 0;
}
答案 0 :(得分:1)
好的,所以你有4列可以有值BOSS。我想解决问题的最佳方法是循环思考这4列,直到你得到Value BOSS,当你找到它时,将列名存储在一个变量上,这样你就可以在以后找回它。
答案 1 :(得分:0)
我不确定你需要什么...你的问题有点模糊......
如果需要访问列名,请执行以下操作:DataTable.Columns [columnNumber] .ColumnName