我是用C#写一个CLR.面向的是一个数据库,最终我要得到一句数据库语句. 而那中间的一部分就是 'CV' AS CV1, 'CV' as CV2 (CV字段是1到10中的任一一个). 请大侠给个好的写法
DataTable dt = Lats[0].Table; string StrLats = ""; for (int i = 1; i <= 10; i++) { foreach (DataRow row in dt.Select("LatNo=" + "'" + i + "'")) { StrLats = "," + "'CV' AS CV" + i; } } return StrLats.Remove(StrLats.IndexOf(',')); 你看能用不?
晕!!~~把 foreach (DataRow row in dt.Select("LatNo=" + "'" + i + "'")) { StrLats = "," + "'CV' AS CV" + i; } 换成 for (int j = 0; j < dt.Select("LatNo<>" + "'" + i + "'").Length; j++) { StrLats = "," + "'CV' AS CV" + i; } 抱歉哈~~
不行, 我的数据库里现在CV3到CV7有值,现在的效果出现的是'CV' as CV1,'CV' as CV2, 'CV' as CV4....'CV' as CV8, 'CV' as CV9,'CV' as Cv10而我想的的是'CV' as CV1,'CV' as CV2,'CV' as CV8, 'CV' as CV9,'CV' as Cv10.(CV字段是随意哪个字段里都有值的.只是我现在数据库里CV3到CV7有值)
int[] b={1,45,67,8,90,12,3,5,87,9};for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(a[i]==b[j])
{
a[i]=-9999;
}
}
}
这样就搞定了
{
String StrLats = "";
// int[] k ={ 1,2,3,4,5,6,7,8,9,10};
try
{
for (int i = 1; i <= 10 ; i++)
{
#region
if (StrLats == "")
{
for (int j = 0; j < Lats.Length; j++)//Lats是一个数组,我要拿到他是CV几字段
{
if ((int)Lats[j]["LatNo"] == i)
{
break;
}
else if ((int)Lats[j]["LatNo"] != i)
{
StrLats = "," + "'CV' AS CV" + i;
break;
}
} }
else
{ for (int j = 0; j < Lats.Length; j++)
{
switch (i)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
default:
StrLats += "," + "'CV' AS CV" + i;
break;
}
break;
}
}
#endregion
}
}
catch (Exception e)
{
SqlContext.Pipe.Send(e.Message);
}
finally
{
;
}
return StrLats;
}
}最后我想要的效果是,'CV' AS CV1, 'CV' as CV2 (CV字段是1到10中的任一一个)
lz设计精悍啊
DataTable下那么多方法你不用,非要用数组这种不可变长的东西作删除处理
这个方法既然能传进DataRow[] 为什么不能传DataTable?
我说你怎么会说数组里的元素是字段呢?原来你就是想从DataTable里删除重复的列(Column)对不?
那为什么要用数组呢??。汗!!~~~
那我也觉得没必要这么累
而那中间的一部分就是 'CV' AS CV1, 'CV' as CV2 (CV字段是1到10中的任一一个).
请大侠给个好的写法
string StrLats = ""; for (int i = 1; i <= 10; i++)
{
foreach (DataRow row in dt.Select("LatNo=" + "'" + i + "'"))
{
StrLats = "," + "'CV' AS CV" + i;
}
}
return StrLats.Remove(StrLats.IndexOf(','));
你看能用不?
{
StrLats = "," + "'CV' AS CV" + i;
}
换成
for (int j = 0; j < dt.Select("LatNo<>" + "'" + i + "'").Length; j++)
{
StrLats = "," + "'CV' AS CV" + i;
}
抱歉哈~~
我的数据库里现在CV3到CV7有值,现在的效果出现的是'CV' as CV1,'CV' as CV2, 'CV' as CV4....'CV' as CV8, 'CV' as CV9,'CV' as Cv10而我想的的是'CV' as CV1,'CV' as CV2,'CV' as CV8, 'CV' as CV9,'CV' as Cv10.(CV字段是随意哪个字段里都有值的.只是我现在数据库里CV3到CV7有值)