conn = new SqlConnection(@"Data Source=ASHISH-PC\SQLEXPRESS; initial catalog=bank; integrated security=true");
ada = new SqlDataAdapter("select total_amount from debit_account where account_no=12", conn);
ds = new DataSet();
ada.Fill(ds);
现在,我想打印数据集的值......怎么样?请帮帮我。
答案 0 :(得分:6)
我建议这里最好的选择实际上不是SqlDataAdapter
和DataSet
,而是SqlCommand
。试试这个:
using(SqlConnection conn = new SqlConnection(@"Data Source=ASHISH-PC\SQLEXPRESS; initial catalog=bank; integrated security=true"))
{
conn.Open()
using (SqlCommand command = new SqlCommand("select total_amount from debit_account where account_no=12", conn)
{
var result = command.ExecuteScalar();
Console.WriteLine("The total_amount for the account is {0}", result);
}
}
SqlCommand
上的ExecuteScalar()
方法会返回查询返回的第一行第一列中的值,这在这种情况下非常理想。
如果您绝对 使用数据集,那么您需要执行以下操作:
using(SqlConnection conn = new SqlConnection(@"Data Source=ASHISH-PC\SQLEXPRESS; initial catalog=bank; integrated security=true"))
{
conn.Open()
using (SqlDataAdapter adapter = new SqlDataAdapter("select total_amount from debit_account where account_no=12", conn)
{
var ds = new DataSet();
adapter.Fill(ds);
Console.WriteLine("The total_amount for the account is {0}", ds.Tables[0].Rows[0][0]); // Get the value from the first column of the first row of the first table
}
}
注意: 我已将这两个示例包装在C#using
statement中,这可以确保清理所有数据库资源,这样您就不会遇到任何问题泄漏非托管资源。这不是特别困难或复杂,所以非常值得做
答案 1 :(得分:3)
我认为,在这种情况下,您最好(性能方面)使用SqlCommand
而不是适配器和数据集,并调用ExecuteScalar
方法。
请参阅http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx
但是,如果必须使用数据集,则ds.Tables[0].Rows[0]["total_amount"]
应检索您的值。但是,您可能需要输入值。