如何访问选择查询的行和列

时间:2012-12-26 09:53:14

标签: asp.net sql-server-ce webmatrix

var r=db.execute("query")

嗨!我想访问从此查询获得的列(和行)(如q [0] .column1)。但是当我将它存储在var中时,它是不可能的。

我可以使用哪种数据类型或技术?

执行此操作时,单行输出和多行输出之间是否存在差异?

我正在使用webmatrix中的sql server CE db(sdf文件)。

2 个答案:

答案 0 :(得分:1)

我认为db是来自WebMatrix.Data命名空间的Database type的对象,使用类似

的命令打开
var db = Database.Open("yourDb");

如果这是正确的,则Execute方法(使用大写E)不返回查询,而是返回一个整数,该整数是受执行的SQL语句影响的记录数(INSERT,UPDATE或DELETE)。

返回查询结果的方法有三种:Query,QuerySingle和QueryValue。

Query将行列表返回为IEnumerable of Objects。以下示例查询Northwind表并显示结果:

@{
    var db = Database.Open("Northwind");
    var data = db.Query("SELECT ProductID, ProductName FROM Products WHERE SupplierID = 1");
    foreach (var row in data){
        <p>@row.ProductID - @row.ProductName</p>
    }
}

QuerySingle将单行返回为Object,例如:

@{
    var db = Database.Open("Northwind");
    var data = db.QuerySingle("SELECT ProductID, ProductName FROM Products WHERE ProductID = 10");
    <p>@data.ProductID - @data.ProductName</p>
}

QueryValue返回单个值为Object:

@{
    var db = Database.Open("Northwind");
    var data = db.QueryValue("SELECT UnitPrice FROM Products WHERE ProductID = 14");
    <p>The price of product n. 14 is: @data</p>
}

答案 1 :(得分:0)

您的数据库将返回表格或数据集。为了访问每个单元格中的数据,您需要遍历DataTable或DataSet行并指定每个列索引或名称。