从数据集中获取单个值的最佳方法是什么?

时间:2011-11-07 10:58:38

标签: c# asp.net

我有一个数据集,其中只有一个值,将单个值输出到整数的最佳方法是什么?

6 个答案:

答案 0 :(得分:6)

SqlCommand.ExecuteScalar

// setup sql command and sql connection etc first...
int count = (int) cmd.ExecuteScalar();

答案 1 :(得分:4)

查看C#3.0“扩展方法”的新功能 您可以为任何类定义自己的扩展方法。 例如:

namespace MyEx;

public static class MyExtensions
{
    public static object SingleValue(this DataSet ds)
    {
        return ds.Tables[0].Rows[0][0];
    }
}

您可以使用它之后:

using MyEx;

public class Class1
{
    public void Test()
    {
        DataSet ds = new DataSet();
        object value = ds.SingleValue();
    }
}

答案 2 :(得分:1)

if (ds.Tables[0].Rows.Count > 0) {
    int i = Convert.ToInt32(ds.Tables[0].Rows[0]["colname"]);
}

答案 3 :(得分:0)

最好的方法是不在数据集中写入单个值。

但如果你不能避免它:

try
{
    //if the value is coming back as string
    int value1 = Int32.Parse(ds.Tables[0].Rows[0][0].ToString());
    //if the value is already an integer
    int value2 = (int)ds.Tables[0].Rows[0][0];
}
catch(Exception ex)
{
    throw new Exception("You do not have even a single value in the DataSet or its not an integer!", ex);
}

答案 4 :(得分:0)

你可以这样做:

dt = ds.Tables["TableName"];
Convert.ToInt32(dt.Rows[rowNumber]["ColumnName"].ToString());

答案 5 :(得分:0)

你可以这样做......

int myVar =
 Convert.ToInt32(dsMyDataSet.Tables["MyTable"].Rows[intRowPos]["MyColumn"].Tostring());