-2
var r=db.execute("query")

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

我可以使用什么样的数据类型或技术?

这样做时单行输出和多行输出有区别吗?

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

4

2 回答 2

1

我想 db 是 WebMatrix.Data 命名空间中的数据库类型的对象,用类似的命令打开

var db = Database.Open("yourDb");

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

返回查询结果的方法有 3 个:Query、QuerySingle 和 QueryValue。

查询将行列表作为 IEnumerable 对象返回。以下示例查询 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 返回单行作为对象,例如:

@{
    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>
}
于 2012-12-26T12:51:25.093 回答
0

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

于 2012-12-26T09:56:51.100 回答