日期:2014-05-18 浏览次数:21249 次
select c.name from sysobjects o,syscolumns c where o.id =c.id and o.name='A'
------解决方案--------------------
这样的设计不是很好,不过真要做的话,
select 所有列 from 表A where 第1列=你要判断的内容 or 第2列=你要判断的内容 ... or 第n列=你要判断的内容
查询时用 SqlDataAdapter 填充到 DataTable ,然后循环判断 DataTable 第一行的所有列的值,哪个值等于你要判断的内容,就取那列的 ColumnName。
------解决方案--------------------
假设表名 TableA ,有列 C1, C2, C3 ,要查询的内容为 abc ,这三列的类型都是 VarChar 最好,不然就得类型转换,sql 语句:
select C1, C2, C3 from TableA where C1='abc' or C2='abc' or C3='abc'
------解决方案--------------------
虽然这种方法很不好,但还是贴一下代码吧
string Data = "XXX";
string ColumnName=string.Empty;
foreach (DataRow dr in Dt.Rows)
{
foreach (System.Data.DataColumn Dc in Dt.Columns)
{
if (dr[Dc].ToString().Equals(Data))
{
ColumnName = Dc.ColumnName;
break;
}
}
if (ColumnName != string.Empty)
break;
}
Response.Write(ColumnName);
------解决方案--------------------
SqlConnection conn = 创建一个连接; SqlDataAdapter ada = new SqlDataAdapter(查询语句, conn); DataTable dtbl = new DataTable(); ada.Fill(dtbl); foreach (DataColumn item in dtbl.Columns) { if(dtbl.Rows[0][item] == "abc") { 你要的列名就是 item.ColumnName } }
------解决方案--------------------
补充一下,要注dr[Dc]是否为空
dr[Dc]==DBNull.Value || dr[Dc]==null
或者tostring的时候会报错