怎么在for循环中查询sql语句,像这样的

MoiNaNa 2012-02-10 02:13:27
public static List<Brands> GetAllBrands()
{

List<Brands> list = null;

for (int i = 0; i < GetNames().Count;i++ )
{
SqlConnection conn = new SqlConnection(connstring);
string DataNames = GetNames()[i].ToString()+".dbo.Brand";
string sql = string.Format("select * from "+DataNames);
string sql1 = string.Format(" union all select * from "+DataNames);
sql = sql + sql1;
SqlCommand comm = new SqlCommand(sql, conn);
SqlDataReader sdr = comm.ExecuteReader();
conn.Open();



if (sdr.HasRows)
{
list = new List<Brands>();
}
while (sdr.Read())
{
Brands brand = new Brands();
brand.Id = Convert.ToInt32(sdr["Id"]);
brand.Name = Convert.ToString(sdr["Name"]);
brand.Describe = Convert.ToString(sdr["Describe"]);
brand.IsPublish = Convert.ToInt32(sdr["IsPublish"]);
brand.Models = Convert.ToString(sdr["Models"]);
brand.CreateTime = Convert.ToString(sdr["CreateTime"]);
brand.BlongData = Convert.ToString(sdr["BlongData"]);
list.Add(brand);

}

sdr.Close();
conn.Close();

}

return list;

}
其实我想把数据库名循环出来,可是不会啊啊啊啊~~~求解。还有就是他跟我报错说我的connstring没打开
...全文
735 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
观光客 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yanbuodiao 的回复:]
C# code

list = new List<Brands>();


放到整个for循环外面

这些问题自己跟跟就出来了
[/Quote]++ 放在里面每次循环都new一个出来,当然只能得到一个了
烟波钓 2012-02-10
  • 打赏
  • 举报
回复

list = new List<Brands>();

放到整个for循环外面

这些问题自己跟跟就出来了
MoiNaNa 2012-02-10
  • 打赏
  • 举报
回复
报错倒是解决了,就是数据循环出来后,只给我最后一个值~
ayzen1988 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 return_false 的回复:]
conn.Open();
应该在语句执行之前
SqlDataReader sdr = comm.ExecuteReader();
[/Quote]

樓上正解
MoiNaNa 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiuhexuan 的回复:]
select [name] from sys.databases where [name] not in ('master','tempdb','model','msdb')
[/Quote]我那个 GetNames()方法就是用的这个语句,可是,我要把这些数据库的信息都连接起来,就像 string sql = string.Format("select * from "+DataNames);
string sql1 = string.Format(" union all select * from "+DataNames);
sql = sql + sql1;
但是,数据库不止两个,而且string DataNames = GetNames()[i].ToString()+".dbo.Brand";
取出来的也只是最后一个值,我要怎样做啊??
  • 打赏
  • 举报
回复
conn.Open();
应该在语句执行之前
SqlDataReader sdr = comm.ExecuteReader();

llhohai 2012-02-10
  • 打赏
  • 举报
回复
2楼正解
jiuhexuan 2012-02-10
  • 打赏
  • 举报
回复
select [name] from sys.databases where [name] not in ('master','tempdb','model','msdb')
manupstairs 2012-02-10
  • 打赏
  • 举报
回复
那你就conn.Open()一下咯

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧