2017-07-25 139 views
-2

有人能告诉我为什么这不起作用吗?这将向我显示仅与WHERE语句匹配的第一个数据库记录,并且我需要它显示所有匹配的数据库记录。除了只显示匹配的第一条记录以外,所有内容都可以工先谢谢你。使用C#从SQL Server数据库获取多条记录

using (connection = new SqlConnection(connectionString)) 
using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM members WHERE Month = '" + currentMonth + "' AND Day = '" + currentDay +"'", connection)) 
{ 
    DataTable membersTable = new DataTable(); 
    DataSet info = new DataSet(); 
    adapter.Fill(membersTable); 
    adapter.Fill(info); 

    var rows = info.Tables[0].Rows; 

    foreach (DataRow row in rows) 
    { 
     nameEmployee = info.Tables[0].Rows[0]["Name"].ToString(); 
     MessageBox.Show (nameemployee); 
    } 
} 
+1

这是只给你第一条记录。 'info.Tables [0] .Rows [0] [ “名称”]的ToString();'。你在'foreach'中,使用'row。[“Name”]。ToString()'。 –

+1

嗯,你正在遍历行,但在你的循环内,你总是看着第一行。 – Amy

+0

非常感谢,这很好。 – SandraTinch

回答

1

看到以下行:

nameEmployee = info.Tables[0].Rows[0]["Name"].ToString(); 

foreach循环中你是和有行变量“当前”行。该行应显示为:

nameEmployee = row["Name"].ToString(); 
+0

嗯,我不觉得可笑。谢谢你们。我想这就是我盯着这个三个小时试图弄明白的。尴尬,谢谢。 – SandraTinch

+0

不客气。它发生在我们所有人身上。谢谢。 – padotj

+0

@sandratinch任何时候你发现自己盯着同一个问题超过一个小时,换用其他东西20分钟。这让你的大脑做一个内部重置。你会用新鲜的眼睛再看一遍。 – Amy

相关问题