2010-08-17 76 views
-1

我想知道什么是错在此查询我要选择所有的行1列选择所有的行具体列的查询SQL Server 2008中

string command = "select money from User_Data"; 
SqlCommand update_money = new SqlCommand(command, con_string.con); 
SqlDataReader money_reader; 
money_reader = update_money.ExecuteReader(); 
+0

简单地说... ?????????????? – JonH 2010-08-17 19:16:00

+0

对您的问题更具体。究竟是什么错误? “它不起作用”不是一个好问题。 – tenfour 2010-08-17 19:16:24

+0

当我写 时它给了我一个例外tempmoney1 =(float)Convert.ToDouble(money_reader.GetValue(0).ToString()); tempmoney2 =(float)Convert.ToDouble(money_reader.GetValue(1).ToString()); – kartal 2010-08-17 19:32:18

回答

2

你在正确的轨道上 - 现在一次你有数据读取器,你需要遍历行:

string command = "select money from User_Data"; 

SqlCommand update_money = new SqlCommand(command, con_string.con); 
SqlDataReader money_reader = update_money.ExecuteReader(); 

List<decimal> _allValues = new List<decimal>(); 

while(money_reader.Read()) 
{ 
    _allValues.Add(money_reader.GetDecimal(0)); 
} 

这里假设你的money列将SQL Server上decimal(x,y)类型或money的。

+0

我这样做,但当我写 十进制moneyValue = money_reader.GetMoney(1); 我得到异常处理(超出索引),虽然表有2行! – kartal 2010-08-17 19:18:13

+0

@salamonti因为GetMoney(ordinal)函数,其中ordinal是列索引,而不是行索引。 Ordinal对应于select语句中字段的索引,即结果集中行的索引。 – 2010-08-17 19:19:06

+0

好的,我该如何纠正它? – kartal 2010-08-17 19:30:38